Hibernate - Restrictions em uma List

3 respostas
G

Tenho um Relacionamento Many-to-Many.

Produtos está em 1 ou em muitas tabelas de preço.
e uma Tabela de Preço possui muitos produtos

Estou tentando fazer uma busca:

Digito o nome de um produto, seleciono em qual tabela de preços quero buscar.

E estou usando Criteria para fazer isso tudo funcionar.

Enfim, minha dúvida é, como fazer uma Restriction percorrer todos os registros de uma Collection? Por exemplo:

Criteria c = session.createCriteria(Produto.class, "p");
c.add(Restrictions.in("p.tabelaPreco", tabelaPreco));

Se fosse apenas uma tabelaPreco, usuaria eq e iria funcionar 100%.
Porém é uma Collection de tabelaPreco, como faço para testar se em cada tabela do produto alguma dela tem esse id?

3 Respostas

lucasap2005
Criteria criteria = session.createCriteria(Produto.class);
criteria = criteria.createCriteria("tabelaPreco");
criteria.add(Restrictions.eq("id", idTabelaPreco));

Creio que isso resolva seu problema.
Abraço
:slight_smile:

G

Tentei como me disse e recebo um SQL Exception

Caused by: java.sql.SQLException: ORA-00942: a tabela ou view não existe

Porém já conferi 100 vezes, e o mapeamento está ok.

Consigo dar um foreach e exibir todas as listas de cada produto, só estou com dificuldade para fazer
uma critéria com filtros nos 2 campos.

lucasap2005

Posta o código ae

Criado 19 de maio de 2008
Ultima resposta 20 de mai. de 2008
Respostas 3
Participantes 2