O erro da bem nessa linha quando vou buscar um login ( eu busco o login e já preencho o objeto pai dele.
//criteria.uniqueResult();
public EmpresaBean findByLogin(LoginBean login) {
EmpresaBean empresa = null;
try {
transaction = session.beginTransaction();
logger.info("Preparando para buscar objeto: [ " + classe.getSimpleName() + " ] de Usuario = [ " + login.getUsuario() + " ]");
Criteria criteria = session.createCriteria(LoginBean.class);
criteria.add(Expression.eq("usuario", login.getUsuario()));
criteria.add(Expression.eq("senha", login.getSenha()));
//criteria.add(Expression.eq("status", true));
if(criteria.uniqueResult() != null){
logger.info("Objeto [ " + classe.getSimpleName() + " ] diferente de nulo");
login = (LoginBean)criteria.uniqueResult();
empresa = login.getEmpresa();
} else {
logger.info("Objeto [ " + classe.getSimpleName() + " ] é nulo");
}
transaction.commit();
logger.info("Objeto [ " + classe.getSimpleName() + " ] encontrado com sucesso");
} catch (Exception ex) {
logger.error("Erro ao erro ao buscar: [ " + classe.getSimpleName() + " ]", ex);
rollback();
} finally {
try {
if(session.isOpen()){
logger.error("Finalizando sessao");
//session.close();
}
} catch (HibernateException hex) {
logger.error("Erro ao finalizar sessao", hex);
}
}
logger.info("Objeto [ " + classe.getSimpleName() + " ] sendo retornado");
return empresa;
}
No objeto pai eu declarei:
public class EmpresaBean{
@Enumerated(EnumType.STRING)
@Column(name="estado")
private Estado estado;
@OneToOne(mappedBy="empresa", fetch=FetchType.EAGER)
@Cascade(CascadeType.ALL)
private LoginBean login = new LoginBean()
}
e o filho,Login:
public class LoginBean{
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_empresa")
private EmpresaBean empresa;
}
e meu enum Estado
public enum Estado {
AC("Acre"),
AL("Alagoas"),
AP("Amapá"),
AM("Amazonas"),
BA("Bahia"),
CE("Ceará"),
DF("Distrito Federal"),
GO("Goiás"),
ES("Espírito Santo"),
MA("Maranhão"),
MT("Mato Grosso"),
MS("Mato Grosso do Sul"),
MG("Minas Gerais"),
PA("Pará"),
PB("Paraiba"),
PR("Paraná"),
PE("Pernambuco"),
PI("Piauí"),
RJ("Rio de Janeiro"),
RN("Rio Grande do Norte"),
RS("Rio Grande do Sul"),
RO("Rondônia"),
RR("Rorâima"),
SP("São Paulo"),
SC("Santa Catarina"),
SE("Sergipe"),
TO("Tocantins");
private String estado;
Estado(String estado){
this.estado = estado;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
@Override
public String toString(){
return estado;
}
O que to fazendo de errado?