J'essaie de chercher les enregistrements dans un seul SQL. Je voudrais utiliser facultatif où la clause pour le faire.
C'est ce que j'ai essayé ceci n'a pas fonctionné. P> Je voudrais apporter tous les enregistrements lorsque le paramètre est vide voudrait apporter uniquement le produit spécifié. . P> Comment puis-je faire ça? Merci d'avance. P> p>
3 Réponses :
faire 2 méthodes distinctes
Je voulais éviter ceci .... Trouver un moyen de le réaliser dans une seule requête, j'enfacte j'ai une très grande tables multi-jointes SQL SO ....
@ user3919727, mieux ne pas éviter d'écrire deux méthodes, car FindallParties (NULL) CODE> a simplement l'air déroutant, si vous me demandez. Il est soit un paramètre de filtre, soit il n'y a pas.
Si vous n'aimez pas cette approche, d'utiliser des critères API
select * from Products p where req_param is null or ( type='L' and active=1) Since if req_param is null it will be true for all the rows therefore will bring all records. if req_param is not empty/null condition "req_param is null" will be false and rows will be returned only basis upon "( type='L' and active=1)"
Si vous souhaitez des requêtes conçues de manière conditionnelle, utilisez l'API code> de Critères de JPA > pour l'API SPRESS ''S> CODE> SPÉCIFICATIONS CODE>. p>
Lisez à propos de Preceferrerer comme vous mélangez
Et cod> et
ou code> .. Lisez également Pourquoi devrais-je fournir un exemple de reproductible minimal pour une requête SQL très simple?