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

problema struts2 & hibernate

Estas en el tema de problema struts2 & hibernate en el foro de Java en Foros del Web. Hola, estoy haciendo un programilla, aplicación web, típico "login" con struts2 & hibernate. En el programa tengo en useDAO.java estos dos metodos, donde con uno ...
  #1 (permalink)  
Antiguo 11/11/2010, 11:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 11
Antigüedad: 15 años, 5 meses
Puntos: 0
problema struts2 & hibernate

Hola,

estoy haciendo un programilla, aplicación web, típico "login" con struts2 & hibernate.

En el programa tengo en useDAO.java estos dos metodos, donde con uno guardo registros de usuarios y con el otro compruebo cuando un usuario se loga si se ha registrado anteriormente o no. El caso es que el primero me funciona, me guarda los datos en la base de datos, pero el segundo no hay manera.


------------METODO PARA GUARDAR DATOS EN DB---------------------

public static boolean registerUser(User u) {

SessionFactory sf = HibernateUtil.getSessionFactory();
Transaction t = null;
try {
Session s = sf.openSession(); //se abre una sesion
t = s.beginTransaction(); // se inicia una unidad de trabajo
s.persist(u);
s.save(u); //guardamos
s.flush();
t.commit();
s.close();

// confirmamos la transaccion
return true;

}
catch(Exception ex) {
System.err.println("Error -->" + ex.getMessage());
if ( t!=null) t.rollback(); // tiramos para atras la transaccinn
return false;
}

}



En estos dos metodos "ACTION" llamo a los anteriores. El primero funciona, pero el segundo no y nosé en que me estoy equivocando. Cundo quiero ir al logarme, cuando llama al action de logarse (el segundo) me salta un error.
------EL ERROR ES EL SIGUIENTE:--------------------
Servlet.service() para servlet default lanzó excepción
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing.



-----------------METODO PARA COMPROBAR SI EXISTE U---------------------

public static String comprobarUser(User u){

String nombre;
Transaction t = null;
SessionFactory sf = HibernateUtil.getSessionFactory();
Session s = sf.openSession();
t = s.beginTransaction();
nombre = s.getEntityName(u);
t.commit();


return nombre;


}



-----------------------METODO DONDE SE LLAMA AL 1º DE ARRIBA----------------

public String execute() throws Exception {


User u = new User();
u.setEmail(email);
u.setPassword(pwd);

if ( UserDAO.registerUser(u))
return "success";
else
return "fail";
}

----------------METODO QUE LLAMA AL 2º-----------------------------

public String execute() throws Exception {

User u = new User();
u.setEmail(email);
u.setPassword(pwd);

if ( UserDAO.comprobarUser(u) != null){

return "success";
}
else
return "error";
}


------EL ERROR ES EL SIGUIENTE:--------------------
Servlet.service() para servlet default lanzó excepción
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing

Etiquetas: hibernate, struts
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 14:23.