A
Alex_1900
Gast
Hallo,
ich bin Anfänger bei JPA und frage mich ob es unter Verwendung von JPA möglich ist
eine Where bedingung dynamisch erstellen zu lassen.
Ich habe folgende Situation:
ich möchte eine Suche implementieren. Diese Suche hat viele Felder die alle optional sind.
Nun kann der Benutzer also nur ein Feld von Zehn füllen.
D.h. zb
FELD : Wert
Alter : 21
Name : null
Vorname : null
Stadt : null
Beim Erstellen der Query benötigt man ja einen QueryString.
Wenn ich diesen String erstelle und dann die Platzhalter so setze
Bekomme ich als Reinen SQL String folgendes :
Damit bekomme ich natürlich kein Ergebniss.
Ich möchte also eine dynamisch erstellte Where Bedingung die alle NULL Werte erst gar nicht in die Bedingung aufnimmt.
Gibt es da etwas dazu direkt von JPA oder muss ich soetwas selber implementieren?
ich bin Anfänger bei JPA und frage mich ob es unter Verwendung von JPA möglich ist
eine Where bedingung dynamisch erstellen zu lassen.
Ich habe folgende Situation:
ich möchte eine Suche implementieren. Diese Suche hat viele Felder die alle optional sind.
Nun kann der Benutzer also nur ein Feld von Zehn füllen.
D.h. zb
FELD : Wert
Alter : 21
Name : null
Vorname : null
Stadt : null
Beim Erstellen der Query benötigt man ja einen QueryString.
Java:
String queryString = "SELECT* FROM PERSON WHERE alter = "+Person.ALTER+" AND name "+Person.NAME;
Query query = manager.createQuery(queryString);
Wenn ich diesen String erstelle und dann die Platzhalter so setze
Java:
query.setParameter(Person.ALTER, "hier kommt der eingegeben Wert von der UI"); //-->21
query.setParameter(Person.NAME, "hier kommt der eingegeben Wert von der UI");//-->null
...
Bekomme ich als Reinen SQL String folgendes :
SQL:
Select * FROM PERSON WHERE alter = 21 and name = null AND ...
Damit bekomme ich natürlich kein Ergebniss.
Ich möchte also eine dynamisch erstellte Where Bedingung die alle NULL Werte erst gar nicht in die Bedingung aufnimmt.
Gibt es da etwas dazu direkt von JPA oder muss ich soetwas selber implementieren?