2011-02-21 14 views

Odpowiedz

31

Nie. Musisz użyć is null i is not null w HQL.

4

Jeśli chcesz korzystać null wartości z '=' lub '<>' operatorów można znaleźć

answer from @egallardo hier

bardzo użyteczne.

Krótki przykładem '=': Wyrażenie

WHERE t.field = :param 

zreorganizujesz jak ten

WHERE ((:param is null and t.field is null) or t.field = :param) 

Teraz można ustawić parametr param albo do jakiegoś non-wartość null lub null:

query.setParameter("param", "Hello World"); // Works 
query.setParameter("param", null);   // Works also 
+1

Dobra odpowiedź, ale trochę przesada :) Robię to, jeśli Nie mam innych rozwiązań: jeśli istnieje tylko jeden lub dwa parametry nullable, uważam, że lepiej jest wykonać wiele zapytań HQL lub JPQL. – pdem

Powiązane problemy