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

Problema al traer datos de una tabla (hibernate, primefaces)

Estas en el tema de Problema al traer datos de una tabla (hibernate, primefaces) en el foro de Java en Foros del Web. Buen dia estoy aprendiendo aprogramar en java y tengo un problema al traer datos desde una tabla, el campo es llave foranea y arroja un ...
  #1 (permalink)  
Antiguo 10/07/2014, 15:25
 
Fecha de Ingreso: julio-2014
Mensajes: 1
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Problema al traer datos de una tabla (hibernate, primefaces)

Buen dia estoy aprendiendo aprogramar en java y tengo un problema al traer datos desde una tabla, el campo es llave foranea y arroja un error. trabajo con hibernate y prime faces

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.co mpnitcom}" style="width: 200px"/>

</h:panelGrid>

<p:separator />
<p:commandButton value="&nbsp;Actualizar" update=":frmusuarios, growlEditar, dlgEditar" actionListener="#{usuarioBean.btnUpdateUsuario(act ionEvent)}" oncomplete="dlgEditar.hide()" image="icon-update" />
<p:commandButton value="&nbsp;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.getUserc odi())){
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.getUserp wd()))
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.co mpnitcom}": Target Unreachable, 'null' returned null) porque la variable no se inicializa y como esta marcada como not null no hace nada.


Agradezco cualquier ayuda

gracias

Etiquetas: hibernate, programa, string, tabla
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 08:34.