drsmachado
Como está o mapeamento e, principalmente, como é feita a consulta?
EmerXavier
@Table(name="TB_USUARIO")
public class UsuarioEntity extends EntitySGP {
@Id @GeneratedValue
private Long id;
private String nome;
@NaturalId
private String login;
private String senha;
private String email;
private String status;
@ManyToOne
@JoinColumn(name="ID_TO_PERFIL", referencedColumnName="ID")
private PerfilAcessoEntity perfil;
@Table(name="TB_PERFIL_ACESSO")
public class PerfilAcessoEntity extends EntitySGP {
@Id @GeneratedValue
private Long id;
@NaturalId
private String nome;
private String status;
@Column(name="CODIGO")
private String siglaPerfil;
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name="ID_TO_FUNCIONALIDADE", referencedColumnName="id")
private List<FuncionalidadePerfilAcessoEntity> funcionalidades;
@Table(name="TB_FUNCIONALIDADE")
public class FuncionalidadeEntity extends EntitySGP {
@Id @GeneratedValue
private Long id;
@NaturalId
private String transacao;
@Column(name="ITEM_MENU")
private String itemMenu;
private String status;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="ID_TO_PERFIL", referencedColumnName="id", insertable=false, updatable=false)
private List<PerfilAcessoEntity> perfils;
@Table(name="TB_FUNCIONALIDADE_PERFIL")
public class FuncionalidadePerfilAcessoEntity extends EntitySGP implements Serializable {
private static final long serialVersionUID = -1347704339554212281L;
private FuncionalidadePerfilPK pk = new FuncionalidadePerfilPK();
@Id @GeneratedValue
private Long id;
@Column(name="NIVEL_ACESSO")
private String nivelAcesso;
DAO
public UsuarioEntity getUsuarioAutenticado(String login, String senha) {
LOG.debug("getUsuarioAutenticado(String login, String senha)");
try {
Session session = getSession();
Criteria criteria = session.createCriteria(UsuarioEntity.class);
criteria.add(Restrictions.eq("login", login));
criteria.add(Restrictions.eq("senha", senha));
UsuarioEntity entity = (UsuarioEntity) criteria.uniqueResult();
return entity;
} catch (HibernateException e) {
LOG.error(e.getMessage());
throw e;
} finally {
//closeSession();
}
}
drsmachado
Sabe o que esta linha significa?
UsuarioEntity entity = (UsuarioEntity) criteria.uniqueResult();
EmerXavier
drsmachado:
Sabe o que esta linha significa?
UsuarioEntity entity = (UsuarioEntity) criteria.uniqueResult();
Eu quero recuperar um único registro de usuário e não de funcionalidade. Pelo menos não é isso que deveria.
Testei aqui dessa forma e não adiantou:
public UsuarioEntity getUsuarioAutenticado(String login, String senha) {
LOG.debug("getUsuarioAutenticado(String login, String senha)");
try {
Session session = getSession();
Criteria criteria = session.createCriteria(UsuarioEntity.class);
criteria.add(Restrictions.eq("login", login));
criteria.add(Restrictions.eq("senha", senha));
List lista = criteria.list();
UsuarioEntity entity = (UsuarioEntity) lista.get(0);
return entity;
} catch (HibernateException e) {
LOG.error(e.getMessage());
throw e;
} finally {
//closeSession();
}
}
EmerXavier