Hibernate notIn em coleções

6 respostas
xjcd

Pessoal tenho a seguinte situação:

Tenho uma coleção (List) de uma determinada classe que está persistida, quero buscar essa classe no banco com o Hibernate (estou usando CRITERIA) e trazer apenas os objetos que não estão nessa minha coleção.

6 Respostas

kicolobo

Fácil.

Expression.not(Expression.in(“suaPropriedade”, suaLista))

Expression.not é o equivalente ao “not” no sql.

xjcd

No meu caso a minha propriedade é o proprio objeto. Se fosse o “ID” seria tranquilo, mas eu tenho é uma coleção de objetos e não uma coleção dos “ids” de meus objetos. Já fiz dessa maneira, mas dá trabalho pois tenho q montar uma coleção separada só com os id’s.

kicolobo

A propriedade não precisa ser um id, pode ser um objeto mesmo. :wink:

xjcd

Mas no meu caso, a coleção é de objetos do mesmo tipo que vou fazer a busca.

cassio

É só você sobrescrever o método equals() na sua entidade que vai funcionar direitinho.

L

cara… faz um Vector de chaves primarias…
se for um id “int” é ainda mais facil…

cria um Vector
faz um for com seu array…
e adiciona os ids ao vector…

dai passa o vector no .in()

Criado 25 de janeiro de 2008
Ultima resposta 25 de jan. de 2008
Respostas 6
Participantes 4