Je travaille sur un projet qui a un référentiel JPA avec des requêtes. Une des requêtes a un And
et Or
à la même requête, mais cela ne fonctionne pas correctement.JPA Repository Query Language - ET avec OU ne fonctionne pas correctement
List<Partner> findDistinctByUserNameNotNullAndPartnerNoInAndUserNameLikeOrFirstNameLikeOrderByPartnerNo(
List<Integer> partnerNos, String userName, String firstName);
Ce qui se passe est que lorsque je passe no Filter
retourne autour 65 rows
, quand je passe un Filter
par exemple « MAR » retourne 265 rows
qui n'a pas de sens puisque la requête sans filtres est aller chercher toutes les lignes. Ce que j'ai observé, c'est qu'au UserNameLikeOrFirstNameLike
le Or
divise la requête. Il est à la recherche d'un Partner
dans la liste avec le UserName Like
OR he just looks for a FirstName like something else.
Je sais quel est le problème, mais je ne sais pas comment le résoudre. Pour faire court: comment mettre un And
et un Or
dans la même requête JPA et le faire fonctionner correctement?
Merci!