0
我想選擇一個實體A
與長值b
和一堆其他值c
一堆。我想獲得最大b
值的A
,或者如果不存在此類值,則返回A
,其中b
爲空。MAX(長)和null之間的JPQL比較
在我看來,這MAX(x)
將一個long類型根據this doc,所以我希望做這個返回null:
SELECT entity FROM A entity
WHERE entity.b = (SELECT MAX(a.b) FROM A a)
AND entity.c = :c
這種運作良好,當b
具有已定義的長期價值。當b
爲空時,我得不到結果。看起來=
運算符不能比較NULL值。
我試圖在OR
條款使用IS NULL
但我只想與空值的實體,如果MAX結果爲空,下面的查詢返回兩個最大長值和空值:
SELECT entity FROM A entity
WHERE (
(entity.b = (SELECT MAX(a.b) FROM A a))
(OR entity.b IS NULL)
)
AND entity.c = :c
我如何選擇具有最大值b
的實體或者沒有設置b
,獲取b
爲空的實體?