O método da classe DAO so retorna null, verifiquei se os dados inseridos estão corretos (CPF e SENHA) e estão, tentei buscar com @NamedQuery e tambem no unique result o valor da busca passa a ser NULL, o que pode ser?
Classe DAO
` public Funcionario autenticar(String cpf, String senha) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
try {
Funcionario funcionario=null;
Criteria consulta = sessao.createCriteria(Funcionario.class);
consulta.createAlias("pessoa", "p");
consulta.add(Restrictions.eq("p.cpf", cpf));
System.out.println(cpf);
SimpleHash hash = new SimpleHash("md5", senha); // Vem com valor 1234
consulta.add(Restrictions.eq("senha", hash.toHex())); // valor com valor criptografado
funcionario = (Funcionario) consulta.uniqueResult(); //Vem com valor NULLl
return funcionario;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
} `
XHTML
` </h:panelGrid>
<h:panelGrid border="0" columns="2" cellpadding="4" cellspacing="6">
<p:outputLabel value="CPF:" />
<p:inputMask size="14" mask="[CPF removido]"
value="#{autenticacaoBean.funcionario.pessoa.cpf}">
<f:validateBean />
</p:inputMask>
<p:outputLabel for="senha" value="Senha:" />
<p:password id="senha" maxlength="8" size="14"
value="#{autenticacaoBean.funcionario.senha}">
<f:validateBean />
</p:password>
</h:panelGrid>`
BEAN
` @Entity
@Table(name="funcionario")
@NamedQuery(name="Funcionario.autenticar",query="SELECT funcionario FROM Funcionario funcionario WHERE funcionario.pessoa.cpf = :cpf AND funcionario.senha=:senha")
})
public class Funcionario extends GenericDomain {
private static final long serialVersionUID = 1L;
....
@OneToOne
@JoinColumn(nullable = false)
private Pessoa pessoa;`