Foros del Web » Programación para mayores de 30 ;) » Java »

problema con @GeneratedValue y llave primaria

Estas en el tema de problema con @GeneratedValue y llave primaria en el foro de Java en Foros del Web. en mi servlet llamo al EJB de la clase Ubicacion . . try{ Context jndiContext = getInitialContext(); Object ref = jndiContext.lookup("SE4/UbicacionFacade/remote"); UbicacionFacadeRemote dao = (UbicacionFacadeRemote)ref; ...
  #1 (permalink)  
Antiguo 14/11/2006, 23:28
 
Fecha de Ingreso: noviembre-2003
Mensajes: 59
Antigüedad: 20 años, 5 meses
Puntos: 0
problema con @GeneratedValue y llave primaria

en mi servlet llamo al EJB de la clase Ubicacion
.
.
try{
Context jndiContext = getInitialContext();
Object ref = jndiContext.lookup("SE4/UbicacionFacade/remote");
UbicacionFacadeRemote dao = (UbicacionFacadeRemote)ref;
Ubicacion ubicacion = new Ubicacion();

ubicacion.setCiudad("ciudad");
ubicacion.setComuna("comuna");
ubicacion.setDirecion("direccion");
ubicacion.setRegion("region");
ubicacion.setSector("sector");
// ubicacion.setId(); --->se genera automaticamente
dao.create(ubicacion);

}

catch (javax.naming.NamingException ne)
{
ne.printStackTrace();
}
}
.
.

la Clase Ubicacion tiene una llave primaria que se genera automaticamente por medio de
@Id
@GeneratedValue

Ahora mi problema es que necesito saber cual fue la llave primaria que me genero con respecto a esa ubicacion que ingrese.
lo que hice en mi EJB fue hacer una funcion que me devuelviera la ultima ubicacion ingresada, pero no estoy seguro que el metodo funcione correctamente, pues otro usuario puede ingresar otra ubicacion al mismo tiempo y ya no seria la misma ubicacion.

public Ubicacion ultimoID(){
List list = em.createQuery("SELECT c FROM Ubicacion AS c").getResultList();

if (list.size()>0){

Ubicacion obj =(Ubicacion)list.get(list.size()-1);
return obj;
}
return null;
}

¿Estoy bien, como puedo recuperar mi llave primaria al ingresar una ubicacion cualquiera.? ya que no puedo usar ubicacion.getId() porque Hibernate la genera automaticamente.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:42.