aix 27 de abr. de 2016 1 like
Ola Elyson, para retornar apenas um objeto Administrador é masi fácil
public Administrador findByNameAndPasswd ( Administrador admin ) {
CriteriaBuilder builder = entityManager . getCriteriaBuilder ();
CriteriaQuery < Administrador > c = builder . createQuery ( Administrador . class );
Root < Administrador > root = c . from ( Administrador . class );
c . where ( builder . equal ( root . get ( Administrador_ . login ), admin . getLogin ()),
builder . equal ( root . get ( Administrador_ . senha ), admin . getSenha ()));
return entityManager . createQuery ( c ). getSingleResult ();
}
Ellyson 27 de abr. de 2016
Oi aix,
agora esta quase funcionando, mas ele não reconhece Administrador_.login, e Administrador_.senha, eu estou usando o JPA,
também tentei:
c . where ( builder . equal ( root . < String > get ( "login" ), administrador . getLogin ()),
builder . equal ( root . < String > get ( "senha" ), administrador . getSenha ()));
ai não dar erro na compilação, mais da erro qndo coloco o login e senha invalido.
aix 27 de abr. de 2016 1 like
Ola Ellyson, sim deve algum NoResultException não é isso? quando não há registro no database, pode colocar um trycatch ou lançar e tratar no seu serviço, quanto a não funcionar o Administrador_ é porque não esta gerando os metamodel do JPA, bom todo caso se quiser o objeto Admisnitrador deve tratar ou retornar null agora na sua lógica pode verificar se existe seria algo:
public boolean existe ( Administrador admin ) {
CriteriaBuilder builder = entityManager . getCriteriaBuilder ();
CriteriaQuery < Administrador > c = builder . createQuery ( Administrador . class );
Root < Administrador > root = c . from ( Administrador . class );
c . where ( builder . equal ( root . get ( Administrador_ . login ), admin . getLogin ()),
builder . equal ( root . get ( Administrador_ . senha ), admin . getSenha ()));
return ! entityManager . createQuery ( c ). getResultList (). isEmpty ();
}
Obs: não codei pela IDE e sim direto aqui no console então pode conter algum erro de sintax, mas acredito estar correto, abração.
Ellyson 27 de abr. de 2016
agora esta ok, só faltava mesmo o try cach