Devolución de mi id cuando hago una insercion!!!!

Lauri
15 de Marzo del 2006
Hola:
Tengo un problema en mi programa del cual no puedo salir.
El problema es que tengo un metodo en mi dao llamado create, el cual inserta los datos de una persona y quiero que en otro jsp se vea los datos que he insertado.
El caso es que mi método es este:
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;
}

Y cuando depuro el codigo me dice que generated keys es null. Yo no se ya que hacer.
Saludos