Problemas con obtener la key de una consulta

Laura
15 de Marzo del 2006
Hola:
Tengo un grave problema en mi codigo del cual no consigo salir.
Tengo un metodo en mi dao que se llama create el cual inserta los datos de una persona, pero quiero que cuando lo inserte me devuelva la key y lo pueda meter en el servlet en mi request pero no lo consigo pq me devuelve vacio. El código es el siguiente:

public BaseDTO create(BaseDTO dto) throws DAOException {
try {
Connection conexion = ds.getConnection();
String sql = \"INSERT INTO personas (nombre, apellido1, apellido2, Direccion, Población, Provincia, Telefono, Fnacimiento, CodPostal, DNI) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\";

PreparedStatement ps = conexion.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

ps.setString(1, ((PersonaDTO)dto).getNombre());
ps.setString(2, ((PersonaDTO)dto).getApellido1());
ps.setString(3, ((PersonaDTO)dto).getApellido2());
ps.setString(4,((PersonaDTO)dto).getDireccion());
ps.setString(5,((PersonaDTO)dto).getPoblacion());
ps.setString(6,((PersonaDTO)dto).getProvincia());
ps.setString(7,((PersonaDTO)dto).getTelefono());
ps.setString(8,((PersonaDTO)dto).getFnacimiento());
ps.setString(9,((PersonaDTO)dto).getCodPostal());
ps.setString(10,((PersonaDTO)dto).getDNI());
ps.execute();
ResultSet rs = ps.getGeneratedKeys();
int generatedKeys = rs.getInt(1);
dto = findByPrimaryKey(generatedKeys);

} catch (SQLException e) {
e.printStackTrace();
throw new DAOException(e.getMessage());
}
return dto;
}

Cuando depuro el código me dice como que no me ha devuelto nada,PORFAVOR ALGUIEN ME PUEDE DECIR ALGO???Estoy empezando a pensar que no tiene solucion.
Muchas gracias