2010-12-22 10 views
0

Zum Beispiel habe ich eine benannte Abfrage:Ohne einen Parameter der benannten Abfrage zu setzen?

@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name) 

Manchmal Ich will den ‚name‘ Parameter mit einem Wert gesetzt und manchmal nicht. Führt es zu einem Fehler, wenn ich es nicht einstelle?

+0

bezogen: http://stackoverflow.com/questions/2444603/optional-parameters-with-named-query-in-hibernate – Bozho

Antwort

0

fand ich eine Lösung wie folgt aus:

if (my test criteria){ 
    query.setParameter("name", "name of a student"); 
    } else { 
    query.setParameter("name", " "); 
    } 

ich den Namen Parameter mit Leerzeichen einstellen, damit es funktioniert.

1

Sie müssen es immer einstellen. Andernfalls - erstellen Sie zwei Abfragen - eine mit param und eine ohne. Sie können den gemeinsamen Teil in einer konstanten platzieren (static final)

Verwandte Themen