hola y mucho gusto tengo el siguiente problemama: al llamar a un dato de la
BD pues me devuelve null, siendo que le dato existe enla BD, y bueno lei
que es posible que si el createQuery() devuelve nul es probable que no se
haya inicializado la sesion y por ello el "Null", bueno aca muestro parte
del codigo:
pojos Administrador.java
package modelo;
// Generated 03-oct-2013 20:45:37 by Hibernate Tools 3.2.1.GA
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* Administrador generated by hbm2java
*/
@Entity
@Table(name="administrador"
,schema="public"
)
public class Administrador implements java.io.Serializable {
private String admiCi;
private int factId;
private String nombre;
private String primerApellido;
private String segundoApellido;
private Date fechaNac;
private String sexo;
private String ciudadOrigen;
private String EMail;
private String estadoCivil;
private String telefonoMovil;
private String telefonoFijo;
private String domicilio;
private String cuenta;
private String clave;
private Set gestionas = new HashSet(0);
public Administrador() {
}
public Administrador(String admiCi, int factId) {
this.admiCi = admiCi;
this.factId = factId;
}
public Administrador(String admiCi, int factId, String nombre, String
primerApellido, String segundoApellido, Date fechaNac, String sexo, String
ciudadOrigen, String EMail, String estadoCivil, String telefonoMovil,
String telefonoFijo, String domicilio, String cuenta, String clave, Set
gestionas) {
this.admiCi = admiCi;
this.factId = factId;
this.nombre = nombre;
this.primerApellido = primerApellido;
this.segundoApellido = segundoApellido;
this.fechaNac = fechaNac;
this.sexo = sexo;
this.ciudadOrigen = ciudadOrigen;
this.EMail = EMail;
this.estadoCivil = estadoCivil;
this.telefonoMovil = telefonoMovil;
this.telefonoFijo = telefonoFijo;
this.domicilio = domicilio;
this.cuenta = cuenta;
this.clave = clave;
this.gestionas = gestionas;
}
@Id
@Column(name="admi_ci", unique=true, nullable=false, length=15)
public String getAdmiCi() {
return this.admiCi;
}
public void setAdmiCi(String admiCi) {
this.admiCi = admiCi;
}
@Column(name="fact_id", nullable=false)
public int getFactId() {
return this.factId;
}
public void setFactId(int factId) {
this.factId = factId;
}
@Column(name="nombre", length=15)
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Column(name="primer_apellido", length=15)
public String getPrimerApellido() {
return this.primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
@Column(name="segundo_apellido", length=20)
public String getSegundoApellido() {
return this.segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
@Temporal(TemporalType.DATE)
@Column(name="fecha_nac", length=13)
public Date getFechaNac() {
return this.fechaNac;
}
public void setFechaNac(Date fechaNac) {
this.fechaNac = fechaNac;
}
@Column(name="sexo", length=15)
public String getSexo() {
return this.sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
@Column(name="ciudad_origen", length=20)
public String getCiudadOrigen() {
return this.ciudadOrigen;
}
public void setCiudadOrigen(String ciudadOrigen) {
this.ciudadOrigen = ciudadOrigen;
}
@Column(name="e_mail", length=30)
public String getEMail() {
return this.EMail;
}
public void setEMail(String EMail) {
this.EMail = EMail;
}
@Column(name="estado_civil", length=15)
public String getEstadoCivil() {
return this.estadoCivil;
}
public void setEstadoCivil(String estadoCivil) {
this.estadoCivil = estadoCivil;
}
@Column(name="telefono_movil", length=15)
public String getTelefonoMovil() {
return this.telefonoMovil;
}
public void setTelefonoMovil(String telefonoMovil) {
this.telefonoMovil = telefonoMovil;
}
@Column(name="telefono_fijo", length=15)
public String getTelefonoFijo() {
return this.telefonoFijo;
}
public void setTelefonoFijo(String telefonoFijo) {
this.telefonoFijo = telefonoFijo;
}
@Column(name="domicilio", length=40)
public String getDomicilio() {
return this.domicilio;
}
public void setDomicilio(String domicilio) {
this.domicilio = domicilio;
}
@Column(name="cuenta", length=15)
public String getCuenta() {
return this.cuenta;
}
public void setCuenta(String cuenta) {
this.cuenta = cuenta;
}
@Column(name="clave", length=15)
public String getClave() {
return this.clave;
}
public void setClave(String clave) {
this.clave = clave;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY,
mappedBy="administrador")
public Set getGestionas() {
return this.gestionas;
}
public void setGestionas(Set gestionas) {
this.gestionas = gestionas;
}
}
aca el Administrador.hbm
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 03-oct-2013 20:45:38 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="modelo.Administrador" table="administrador"
schema="public">
<id name="admiCi" type="string">
<column name="admi_ci" length="15" />
<generator class="assigned" />
</id>
<property name="factId" type="int">
<column name="fact_id" not-null="true" />
</property>
<property name="nombre" type="string">
<column name="nombre" length="15" />
</property>
<property name="primerApellido" type="string">
<column name="primer_apellido" length="15" />
</property>
<property name="segundoApellido" type="string">
<column name="segundo_apellido" length="20" />
</property>
<property name="fechaNac" type="date">
<column name="fecha_nac" length="13" />
</property>
<property name="sexo" type="string">
<column name="sexo" length="15" />
</property>
<property name="ciudadOrigen" type="string">
<column name="ciudad_origen" length="20" />
</property>
<property name="EMail" type="string">
<column name="e_mail" length="30" />
</property>
<property name="estadoCivil" type="string">
<column name="estado_civil" length="15" />
</property>
<property name="telefonoMovil" type="string">
<column name="telefono_movil" length="15" />
</property>
<property name="telefonoFijo" type="string">
<column name="telefono_fijo" length="15" />
</property>
<property name="domicilio" type="string">
<column name="domicilio" length="40" />
</property>
<property name="cuenta" type="string">
<column name="cuenta" length="15" />
</property>
<property name="clave" type="string">
<column name="clave" length="15" />
</property>
<set name="gestionas" inverse="true">
<key>
<column name="admi_ci" length="15" not-null="true" />
</key>
<one-to-many class="modelo.Gestiona" />
</set>
</class>
</hibernate-mapping>
aca el dao:
package dao;
import java.util.List;
import modelo.Administrador;
/**
*
* @author Gudmundsson
*/
public interface AdministradorDao {
public Administrador findByAdministrador (Administrador administrador);
public Administrador loginAdmi (Administrador administrador);
public List<Administrador>findAll();
}
el DaoImpl
package dao;
import java.util.List;
import modelo.Administrador;
import org.hibernate.Session;
import util.HibernateUtil;
/**
*
* @author Gudmundsson
*/
public class AdministradorDaoImpl implements AdministradorDao{
@Override
public Administrador findByAdministrador(Administrador administrador) {
Administrador admi = null;
Session sesion =
HibernateUtil.getSessionFactory().getCurrentSession();
String sql = "FROM Administrador WHERE
cuenta='"+administrador.getCuenta()+"'";
try{
sesion.beginTransaction();
admi = (Administrador) sesion.createQuery(sql).uniqueResult();
sesion.beginTransaction().commit();
} catch (Exception e){
sesion.beginTransaction().rollback();
}
return admi;
}
@Override
public Administrador loginAdmi(Administrador administrador) {
Administrador admi = this.findByAdministrador(administrador);
if ( admi != null ){
if ( !administrador.getClave().equals(admi.getClave()) ){
return admi = null;
}
}
return admi;
}
@Override
public List<Administrador> findAll() {
List<Administrador> listaAdmi = null;
Session sesion =
HibernateUtil.getSessionFactory().getCurrentSession();
String sql = "FROM Administrador";
try{
sesion.beginTransaction();
listaAdmi = sesion.createQuery(sql).list();
sesion.beginTransaction().commit();
} catch (Exception e){
sesion.beginTransaction().rollback();
}
return listaAdmi;
}
}
aca el loginAdmiBean:
package beans;
import dao.AdministradorDao;
import dao.AdministradorDaoImpl;
import java.awt.event.ActionEvent;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import modelo.Administrador;
import org.primefaces.context.RequestContext;
import util.MyUtil;
/**
*
* @author Gudmundsson
*/
@Named(value = "loginAdmiBean")
@SessionScoped
public class loginAdmiBean implements Serializable{
private Administrador admi;
private AdministradorDao adminDao;
public loginAdmiBean() {
this.adminDao = new AdministradorDaoImpl();
if ( this.admi == null ){
this.admi = new Administrador();
}
}
public Administrador getAdmi() {
return admi;
}
public void setAdmin(Administrador admi) {
this.admi = admi;
}
public AdministradorDao getAdminDao() {
return adminDao;
}
public void setAdminDao(AdministradorDao adminDao) {
this.adminDao = adminDao;
}
public void loginAdministrador(ActionEvent actionEvent){
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage msg;
boolean loggedIn = false;
String ruta = "";
this.admi = new Administrador();
this.admi = this.adminDao.loginAdmi(this.admi);
System.out.println("El dato enviado es :" + this.admi);
if ( this.admi != null ){
loggedIn = true;
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("administrador",
this.admi.getCuenta());
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Sea usted
Bienvenido!", this.admi.getCuenta());
ruta =
MyUtil.basepathlogin()+"views/administrador/indexAdmin.xhtml";
} else {
loggedIn = false;
msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Error al
Iniciar la Sesion", "Cuenta y/o Clave incorrecta!");
if ( this.admi == null ){
this.admi = new Administrador();
}
}
FacesContext.getCurrentInstance().addMessage(null, msg);
context.addCallbackParam("loggedIn", ruta);
context.addCallbackParam("ruta", ruta);
}
}
y finalmente el loginAdmi.xhtml:
Inicio Sesion Administrador
Inicio Sesion Administrador
bueno no me dejo pegar pero es donde llamo al dato es loginAdmiBean la
linea " this.admi = this.adminDao.loginAdmi(this.admi);" me retorna NULL y
no tengo idea del porque pues no me bota ningun error hasta que coloque el
System.out.println, no me hubiera enterado del NULL, porfavor busco
ILUMINACION estoy buscando respuestas hace 3 dias gracias y saludos!! me
quedo en espera de sus consejos!!!
Inicio Sesion Administrador
Inicio Sesion Administrador
--
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
---
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano"
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos
electrónicos, envía un correo electrónico a
[email protected].
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.