Wie Baue JPQL-Abfragen, wenn die Parameter sind dynamisch?
Frage ich mich, ob es eine gute Lösung zum erstellen einer JPQL Abfrage (meine Abfrage ist auch "expressive" und ich kann-Kriterien) auf der Grundlage eines filters.
Etwas wie:
query = "Select from Ent"
if(parameter!=null){
query += "WHERE field=:parameter"
}
if(parameter2!=null) {
query += "WHERE field2=:parameter2"
}
Aber ich würde schreiben, WO zweimal!! und die kasuistische explodiert, als die Anzahl der parameter erhöht. Weil keiner oder alle könnte null sein schließlich.
Jeden Hinweis, um diese Abfragen basierend auf filtern auf einem richtigen Weg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum können Sie nicht verwenden, ein Kriterium, wie diese.
Anderen Optionen (weniger gut imho):
Erstellen Sie zwei benannte Abfragen eine für jeden Zustand, dann rufen Sie die entsprechende Abfrage.
Oder bauen einen string und verwenden Sie eine native query.
Oh, tun Sie nur, dass der string-Bildung(?) :
(Ich glaube, dass die string-Bildung ist hässlich, aber es schien das zu sein, was war gefragt)