0
我有一個名爲查詢:生成正確的SQL與轉換爲NULL轉換器?
<query>
select data
from objects obj
where obj.status = :status
</query>
的事情是,狀態是Boolean
參數由AttributeConverter
的手段轉化爲不是「+」如果狀態true
或NULL
如果狀態爲false
。
我做到這一點通過javax.persistence.Converter.AttributeConverter<Boolean, String>
此工作正常,如果狀態是true
但如果是false
我得到一個錯誤:
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
我可以在錯誤日誌中看到生成的SQL查詢包含以下表達式:
(t0.STATUS = ?)
這是不正確的,因爲它實際上應該是:`(t0.STATUS IS NU LL)
我期待爲JPQL如果該值被轉換爲NULL
自動生成預期的查詢。有沒有辦法做到這一點,或者是不是以這種方式使用轉換器?
雖然這個技巧是可能的,但它正是我試圖避免的。唉,似乎沒有辦法繞過它。 – Roland