1
resposta

É possivel configurar a jpa para retornar um join e não um cross join ?

Gostaria de saber se tem alguma forma de configuração que pudesse trocar o cross join que é retornado na query sem precisar explicitamente escrever um join na jpql. Pois numa conversa com meu gestor, ele mostrou que esse tipo de query se desgasta com o tempo por conta do cross join que faz um produto cartesiano e conforme o banco aumenta de tamanho, isso diminui a eficiencia da query

1 resposta

Oi Erik,

Na verdade nao tem problemas em utilizar o cross join, pois o hibernate "bate" as colunas de join na clausula where da query e os bancos de dados geralmente fazem otimizacoes para esse tipo de select.

Mas voce pode forcar um select com inner join, caso prefira:

SELECT p FROM Produto p INNER JOIN FETCH p.categoria c WHERE c.nome = :nome

Bons estudos!