J'ai une requête HQL de travail que je veux optimiser. Il est comme suit:HQL requête équivalence: Pourquoi sont-ils différents
select distinct A.id from Import as A, Place D
where (A.place=D or A.placeBOK=D) and D.country=?
I tried to replcae the query from above by the following:
select distinct A.id from Import as A
where A.place.country=? or A.placeBOK.country=?
En plus des performances, j'ai pensé que les deux requêtes sont équivalentes. Mais ils ne le sont pas. Le premier est la livraison d'un ensemble de 20 objets, alors que le second ne fournit que 14 objets.
Qu'est-ce que je fais mal?
Un conseil?
Désolé, mais je ne comprends pas plutôt bien. Sont-ils équivalents ou non? – Luixv
Je corrige ma réponse (j'espère que ce sera plus clair). Le point clé est que vous devez faire une jointure gauche à la place sur la jointure interne qui est un comportement implicite pour "." syntaxe. – FoxyBOA