【发布时间】:2019-04-14 16:46:29
【问题描述】:
我是使用 EclipseLink 的 JPA 命名查询的新手,我想在命名查询中“忽略”具有空值的属性。我知道我的问题已被多次回答。 例如JPA Query to handle NULL parameter value
但是,在我的情况下,以下格式不起作用
+ " AND (:quoteNumber IS NULL OR ord.quoteNumber = :quoteNumber)"
我收到错误“非法使用 NULL 关键字”。我现在将使用 CriteriaQuery,只是好奇为什么它在命名查询中不起作用。 以下是正在使用的 DB2 和 Eclipselink 版本。 日食链接:2.5.1 DB2:DSN11015
【问题讨论】:
-
这是您的实际代码吗?双引号和/或右括号似乎放错了位置。
-
那是错字。谢谢
-
这看起来像一个 DB 异常 - 生成的 SQL 是什么?您必须检查您的数据库文档以查看是否支持“column = null”,或者它是否不支持“null is null”。
-
这是我的命名查询:SELECT o FROM ORDER o WHERE (o.quoteNumber = :quoteNumber) OR (:quoteNumber IS NULL)) 这是生成一个:SELECT * FROM ORDER o WHERE (o .quoteNumber = NULL) OR (NULL IS NULL))
-
您是否期望对命名查询进行某种动态调整(空参数不属于 where 子句)?
标签: db2 eclipselink named-query db2-zos