我試圖涵蓋 :creationDateTime 為 Null 以獲得與以下查詢“SELECT o FROM ExtraNetOrder o”相同的結果的情況。我在互聯網上搜索并通過添加找到了解決方案IS NULL,但在我的情況下它不起作用。目前我收到以下錯誤:
原因:java.lang.IllegalStateException:在查詢執行期間提供的引數串列中找不到查詢引數 creationDateTime。
如果引數 :creationDateTime 不存在,則應在沒有 where 引數子句的情況下執行查詢。在我的表中,我沒有帶有 NULL 值的 creationDateTime。
在最終查詢中,我有 3 個傳遞給查詢的引數。為簡單起見,我只添加了一個引數(creationDateTime)。
我在專案中使用 EclipseLink。
@NamedQueries({
@NamedQuery(name="order_by_filter_options", query="SELECT o FROM ExtraNetOrder o "
" WHERE :creationDateTime IS NULL OR :creationDateTime = '' OR o.creationDateTime >=:creationDateTime ")
})
-------------------
Query q = em.createNamedQuery("order_by_filter_options");
if (fromDate != null)
q.setParameter("creationDateTime", fromDate);
@SuppressWarnings("unchecked")
List<ExtraNetOrder> orders = q.getResultList();
uj5u.com熱心網友回復:
如果 fromDate 為 null,則需要將 :creationDateTime 設定為 null。只需洗掉if并始終呼叫q.setParameter("creationDateTime", fromDate);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/441646.html
