Alguna ves te a pasado que usas hibernate para actualizar información de la base de datos pero cuando consultas no muestra el cambio, pero si entras en la base de datos realmente a cambiado?
pues bien es estos casos lo mejor que puedes hacer, es trabajar con sessiones independientes , es decir en cada lugar en donde realizar transaciones en la base de datos. y después de cada actualización o inserción utilizar un refresh().
en mi caso les voy a mostrar una función en la cual lo hago.
/*este método recibe los atributos de l objeto, lo arma y lo inserta*/
public boolean actualizarBD(int idusuario,String login,String contrasena,String cedula,int perfil)
{
Session session=null;
boolean exito=false;
try{
SessionFactory sessionFactory =new Configuration().configure().buildSessionFactory();
session =sessionFactory.openSession();
Usuario usuario = new Usuario();/**donde usuario es un objeto con estos atributos*/
usuario.setIdUsuario(idusuario);
usuario.setLogin(login);
usuario.setContrasena(contrasena);
usuario.setIdPerfil(perfil);
usuario.setCedula(cedula);
session.beginTransaction();
session.update(usuario);
session.flush();
session.refresh(usuario);
session.getTransaction().commit();
exito=true;
}catch(Exception e){
System.out.println(e.getMessage());
}
return exito;
}
No hay comentarios:
Publicar un comentario