原因:java.lang.IllegalStateException:在查询执行期间提供的参数列表中找不到查询参数 creationDateTime
Caused by: java.lang.IllegalStateException: Query argument creationDateTime not found in the list of parameters provided during query execution
我试图涵盖 :creationDateTime 为 Null 的情况,以获得与以下查询“SELECT o FROM ExtraNetOrder o”相同的结果。我在网上搜索了一下,通过添加IS NULL
找到了解决办法,但是
在我的情况下不起作用。目前我收到以下错误:
Caused by: java.lang.IllegalStateException: Query argument
creationDateTime not found in the list of parameters provided during
query execution.
如果参数:creationDateTime 不存在,则应在不带where 参数子句的情况下执行查询。在我的 table 中,我没有值为 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();
如果 fromDate 为 null,则需要将 :creationDateTime 设置为 null。只需删除 if
并始终调用 q.setParameter("creationDateTime", fromDate);
我试图涵盖 :creationDateTime 为 Null 的情况,以获得与以下查询“SELECT o FROM ExtraNetOrder o”相同的结果。我在网上搜索了一下,通过添加IS NULL
找到了解决办法,但是
在我的情况下不起作用。目前我收到以下错误:
Caused by: java.lang.IllegalStateException: Query argument creationDateTime not found in the list of parameters provided during query execution.
如果参数:creationDateTime 不存在,则应在不带where 参数子句的情况下执行查询。在我的 table 中,我没有值为 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();
如果 fromDate 为 null,则需要将 :creationDateTime 设置为 null。只需删除 if
并始终调用 q.setParameter("creationDateTime", fromDate);