Pessoal,
Preciso de ajuda, e não estou encontrando solução…
Tenho uma tabela de Pedidos e uma tabela de itens de pedidos.
A classe em resumo eh:
public class Pedido {
String descricao;
Set itens;
}
public class Item {
String descricao;
}
Preciso fazer uma consulta que recupere os Pedidos contendo uma dada descrição.
No entanto o Item também possui descrição e é preciso fazer a consulta nos itens também.
Se um pedido possuir dois itens, e os dois possuirem a descricao dada, o Pedido deverá ser retornado apenas uma vez.
Eu fiz o seguinte:
Criteria crit = session.createCriteria(Pedido.class);
crit.createAlias(“itens”, “item”);
Criterion pedidoDescCrit = Restrictions.like(“descricao”, “%” + descStr + “%”);
Criterion itemDescCrit = Restrictions.like(“item.descricao”, “%” + descStr + “%”);
LogicalExpression orExp = Restrictions.or(pedidoDescCrit, itemDescCrit);
crit.add(orExp);
Mas ela nao retorna quando a descrição está no Pedido, e retorna n vezes quando a descrição se repete nos Itens.
Alguém tem uma dica?
Obrigado!
ps: hibernate 3 / java 6