Criteria com base em valores de tabela filha
19/09/2019 09:04
1
?Tive a necessidade de realizar uma busca por Criteria para obter uma tabela Mãe com base nos valores de campos de sua tabela filha. Como no meu caso, os valores de busca nas tabelas filhas ficavam em campos diferentes, foi necessário realizar uma busca com Join.

A solução foi semelhante ao exposto abaixo:


?
   CriteriaBuilder builder = entityManager.getCriteriaBuilder();
  CriteriaQuery<ClasseMae> query = builder.createQuery(ClasseMae.class);

Root<ClasseMae> root = query.from(ClasseMae.class);
query.select(root);
?
?List<Predicate> predicates = new ArrayList<Predicate>();

?Join<ClasseMae, ClasseFilha> primeiroJoin = root.join("atributo");
?predicates.add(builder.equal(primeiroJoin.get("campo1"), valorPesquisa));

Join<ClasseMae, ClasseFilha> segundoJoin = root.join("atributo");
?predicates.add(builder.equal(segundoJoin.get("campo2"), valorPesquisa));

?query.where(predicates.toArray(new Predicate[]{}));
Tags: criteria


0
Excelente!


0
Isto é útil demais!



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.

Podcast da itexto



Aprenda Groovy e Grails, Spring e mais com a Formação itexto!

Livro de Spring


/dev/All

Os melhores blogs de TI
em um único lugar!

 
Spring Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.