Autor
|
Tema: problema en la creacion de un crud en java usando hibernate (Leído 2,504 veces)
|
ivanchodmd
Desconectado
Mensajes: 2
|
Buen dia, soy nuevo en este foro y en el desarrollo en java, estoy implementando un sistema de logueo basico de usuario (un crud) pero al momento de actualizar, eliminar o insertar no pasa nada y la verdad no encuentro el error
el codigo de la vista:
<<h:form id="frmNuevo"> <p:dialog id="dlgNuevo" header="Nuevo Usuario" widgetVar="dlgNuevo" resizable="false" modal="true"> <p:growl id="growlNuevo" sticky="true" /> <h:panelGrid id="pgNuevo" columns="2" cellpadding="5" style="margin:0 auto;">
<h:outputText value="Codigo:" style="width: 200px" /> <h:outputText value="Nombres:" /> <p:inputText value="#{usuarioBean.selectedUsuario.usercodi}" alt="left" /> <p:inputText value="#{usuarioBean.selectedUsuario.usernombre}" style="width: 200px" />
<h:outputText value="Usuario:" /> <h:outputText value="Clave:" /> <p:inputText value="#{usuarioBean.selectedUsuario.userusuario}" style="width: 200px"/> <p:inputText value="#{usuarioBean.selectedUsuario.userpwd}" style="width: 200px" /> <h:outputText value="Perfil" /> <h:outputText value="Ciudad" /> <p:inputText value="#{usuarioBean.selectedUsuario.userperfil}" style="width: 200px"/> <p:inputText value="#{usuarioBean.selectedUsuario.mascompany}" style="width: 200px"/> </h:panelGrid>
<p:separator/>
<p:commandButton value=" Guardar" update=":frmusuarios, growlNuevo, dlgNuevo" actionListener="#{usuarioBean.btncreateUsuario(actionEvent)}" oncomplete="dlgNuevo.hide()" image="icon-guardar" ></p:commandButton> <p:commandButton value=" Cancelar" oncomplete="dlgNuevo.hide()" image="icon-cancelar"></p:commandButton>
</p:dialog> </h:form>
>
el metodo:
public boolean update(Masuser userusuario) { boolean flag; Session sesion = HibernateUtil.getSessionFactory().openSession(); try {
sesion.beginTransaction(); sesion.update(userusuario); sesion.beginTransaction().commit(); flag =true; } catch (Exception e) { flag=false; sesion.beginTransaction().rollback();
} return flag; }
el bean :
public void btnUpdateUsuario (ActionEvent actionEvent){ UsuarioDao usuarioDao = new UsuarioDaoImpl(); String msg; if(usuarioDao.update(this.selectedUsuario)){ msg ="Se modifico correctamente el registro"; } else { msg ="Error al modificar el registro"; }
si pudieran asesorarme se los agradeceria mucho
gracias
|
|
|
En línea
|
|
|
|
Chuidiang
|
Convendría que en el catch pusieras algo indicando que ha habido un error, así sabríamos si lo hay y tendríamos una pista de qué puede estar pasando. Lo que más información suele dar es un e.printStackTrace() (el e.getMessage() se queda corto, ya que no te dice la línea exacta del error dentro del try).
Se bueno.
|
|
|
En línea
|
|
|
|
ivanchodmd
Desconectado
Mensajes: 2
|
gracias por responder , he estado haciendo pruebas y me sale el error :Advertencia: /paginas/usuarios/empRegistrar.xhtml @99,96 value="#{usuarioBean.selectedUsuario.usercodi}": Target Unreachable, 'null' returned null
selectUsuario lo utilizo para traer los campos para usuarios nuevos y par editar pero parece que esta legando vacio, no encuentro una forma de solucionarlo.
Codigo de la vista: <h:form id="frmEditar"> <p:dialog id="dlgEditar" header="Editar Usuario" widgetVar="dlgEditar" resizable="false" modal="true" > <p:growl id="growlEditar" showDetail="true" sticky="true" /> <h:panelGrid id="pgEditar" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Codigo:" style="width: 200px" /> <h:outputText value="Nombres:" /> <p:inputText value="#{usuarioBean.selectedUsuario.usercodi}" alt="left" /> <p:inputText value="#{usuarioBean.selectedUsuario.usernombre}" style="width: 200px" />
<h:outputText value="Usuario:"/> <h:outputText value="Clave:"/> <p:inputText value="#{usuarioBean.selectedUsuario.userusuario}" style="width: 200px"/> <p:inputText value="#{usuarioBean.selectedUsuario.userpwd}" style="width: 200px" /> <h:outputText value="Perfil"/> <h:outputText value="Nit"/> <p:inputText value="#{usuarioBean.selectedUsuario.userperfil}" style="width: 200px"/> <p:inputText value="#{usuarioBean.selectedUsuario.mascompany.compnitcom}" style="width: 200px"/> </h:panelGrid> <p:separator /> <p:commandButton value=" Actualizar" update=":frmusuarios, growlEditar, dlgEditar" actionListener="#{usuarioBean.btnUpdateUsuario(actionEvent)}" oncomplete="dlgEditar.hide()" image="icon-update" /> <p:commandButton value=" Cancelar" update=":frmusuarios" oncomplete="dlgEditar.hide()" image="icon-cancelar" />
</p:dialog> </h:form>
codigo beans:
@Named(value = "usuarioBean") @RequestScoped public class usuarioBean {
private List <Masuser> usuarios; private Masuser selectedUsuario; public usuarioBean() { this.usuarios = new ArrayList <Masuser>(); } public List<Masuser> getUsuarios() { UsuarioDao usuarioDao = new UsuarioDaoImpl(); this.usuarios = usuarioDao.findAll(); return usuarios; } public Masuser getSelectedUsuario() { return selectedUsuario; } public void setSelectedUsuario(Masuser selectedUsuario) { this.selectedUsuario = selectedUsuario; } public void btncreateUsuario (ActionEvent actionEvent){ UsuarioDao usuarioDao = new UsuarioDaoImpl(); String msg; if(usuarioDao.create(this.selectedUsuario)){ msg ="Se creo correctamente el registro"; } else { msg ="Error al guardar el registro"; } FacesMessage message = new FacesMessage (FacesMessage.SEVERITY_INFO,msg,null); FacesContext.getCurrentInstance().addMessage(null, message); } public void btnUpdateUsuario (ActionEvent actionEvent){ selectedUsuario = new Masuser (); UsuarioDao usuarioDao = new UsuarioDaoImpl(); String msg; if(usuarioDao.update(this.selectedUsuario)){ msg ="Se modifico correctamente el registro"; } else { msg ="Error al modificar el registro"; } FacesMessage message = new FacesMessage (FacesMessage.SEVERITY_INFO,msg,null); FacesContext.getCurrentInstance().addMessage(null, message); } public void btnDeleteUsuario (ActionEvent actionEvent){ UsuarioDao usuarioDao = new UsuarioDaoImpl(); String msg; if(usuarioDao.delete(this.selectedUsuario.getUsercodi())){ msg ="Se elimino correctamente el registro"; FacesMessage message = new FacesMessage (FacesMessage.SEVERITY_INFO,msg,null); FacesContext.getCurrentInstance().addMessage(null, message); } else { msg ="Error al eliminar el registro"; FacesMessage message = new FacesMessage (FacesMessage.SEVERITY_ERROR,msg,null); FacesContext.getCurrentInstance().addMessage(null, message); } } }
codigo implements:
public class UsuarioDaoImpl implements UsuarioDao {
@Override public Masuser findByUsuario(Masuser userusuario) { Masuser model = null; Session sesion = HibernateUtil.getSessionFactory().openSession(); String sql = "from Masuser where userusuario = '" + userusuario.getUserusuario() + "'";
try { sesion.beginTransaction(); model = (Masuser) sesion.createQuery(sql).uniqueResult(); sesion.beginTransaction().commit();
} catch (Exception e) { sesion.beginTransaction().rollback();
} return model;
}
@Override public Masuser login(Masuser userusuario) { Masuser model = this.findByUsuario(userusuario);
if (model !=null) { if(!userusuario.getUserpwd().equals(model.getUserpwd())) model =null; }
return model;
}
@Override public List<Masuser> findAll() {
List<Masuser> listado = null; Session sesion = HibernateUtil.getSessionFactory().openSession(); String sql = "from Masuser"; try {
sesion.beginTransaction(); listado = sesion.createQuery(sql).list(); sesion.beginTransaction().commit();
} catch (Exception e) { sesion.beginTransaction().rollback();
} return listado; }
@Override public boolean create(Masuser userusuario) { boolean flag; Session sesion = HibernateUtil.getSessionFactory().openSession(); try {
sesion.beginTransaction(); sesion.save(userusuario); sesion.beginTransaction().commit(); flag =true; } catch (Exception e) { flag=false; sesion.beginTransaction().rollback();
} return flag;
}
@Override public boolean update(Masuser userusuario) { boolean flag; Session sesion = HibernateUtil.getSessionFactory().openSession(); try {
sesion.beginTransaction(); sesion.update(userusuario); sesion.beginTransaction().commit(); flag =true; } catch (Exception e) { flag=false; System.out.println("error"); sesion.beginTransaction().rollback();
} return flag; }
@Override public boolean delete(String usercodi) { boolean flag; Session sesion = HibernateUtil.getSessionFactory().openSession(); try {
sesion.beginTransaction(); Masuser usuario = (Masuser) sesion.load(Masuser.class, usercodi); sesion.delete(usuario); sesion.beginTransaction().commit(); flag =true; } catch (Exception e) { flag=false; sesion.beginTransaction().rollback();
} return flag; } }
Iniicalice las variables en el Bean :
this.selectedUsuario = new Masuser(); this.selectedUsuario.setUsercodi(""); this.selectedUsuario.setUsernombre(""); this.selectedUsuario.setUserpwd(""); this.selectedUsuario.setUserperfil(""); this.selectedUsuario.setUserusuario("");
con lo que quito la mayoria de los errores pero como el campo Compnitcom es una llave foranea desde otra tabla, me muestra el error (/paginas/usuarios/empRegistrar.xhtml @83,117 value="#{usuarioBean.selectedUsuario.mascompany.compnitcom}": Target Unreachable, 'null' returned null) porque la variable no se inicializa y como esta marcada como not null no hace nada.
|
|
« Última modificación: 9 Julio 2014, 17:56 pm por ivanchodmd »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
CREACION DE AGENDA JAVA
Java
|
skullx08
|
3
|
10,417
|
3 Junio 2011, 22:27 pm
por sapito169
|
|
|
Crud Generator en Codeigniter
PHP
|
madpitbull_99
|
0
|
6,745
|
6 Julio 2011, 20:28 pm
por madpitbull_99
|
|
|
Problema en mi videojuego programado en JAVA, usando librerias Swing/AWT
Java
|
DarkSorcerer
|
2
|
5,056
|
15 Marzo 2013, 05:52 am
por Kenkox
|
|
|
Crud con Strut2 e hibernate
Java
|
jPallol1
|
2
|
2,086
|
29 Marzo 2015, 18:34 pm
por Usuario Invitado
|
|
|
CRUD con MVC y POO en Java y MySQL
Java
|
padiuwu
|
1
|
2,645
|
17 Abril 2019, 11:08 am
por rub'n
|
|