Duvida Criteria Join

2 respostas
colored

Bom tenho duas Classes Employee e Usuario, Employee tem 1 Usuário, estou precisando buscar todo Usuarios que não tem um Employee,
ja tentei varias coisas e n da certo…

Session session = HibernateUtil.getSession();
        Criteria crit = session.createCriteria(Usuario.class);
        crit.createAlias("employee", "employee", Criteria.LEFT_JOIN);
        crit.add(Restrictions.isNull("employee.usuario"));
        crit.add(Restrictions.eq("status",Usuario.ST_ACTIVE));
        List<Usuario> usuarios = crit.list();
        session.close();

Tentei assim mas n tem nada haver isso, to bem confuso com isso…
Será que alguem pode me ajudar muito obrigado… :smiley:

2 Respostas

Hebert_Coelho

Cara, saco nada de Criteria mas vou dar um chute.

Arranca fora o Join do employee e coloca a seguinte condição.

crit.add(Restrictions.isNull(“usuario”));

Outra coisa.

Tenha certeza de que existe usuário ativo e sem Employee. [=

romarcio

Seguindo seu código, pode tentar assim:

Session session = HibernateUtil.getSession();
Criteria crit = session.createCriteria(Employee.class);
crit.add(Restrictions.isEmpty("usuario"));
List&lt;Usuario&gt; usuarios = crit.list();
session.close();
Criado 16 de novembro de 2011
Ultima resposta 16 de nov. de 2011
Respostas 2
Participantes 3