7

我有一个以 aList作为参数的 JPQL 命名查询。我在一个IN短语中使用参数:

...WHERE x.id IN :list

我想做类似以下的事情,但语法显然不允许我这样做:

...WHERE :list IS EMPTY OR x.id IN :list

也不会:

...WHERE SIZE(:list) = 0 OR x.id IN :list

我在 JPA 2.0 命名查询中尝试做的事情是不可能的吗?我知道如何通过标准 API 或使用普通的旧 JPQL 字符串来做到这一点。

4

1 回答 1

-4

您在查询中尝试执行的操作似乎毫无意义。您正在尝试使用参数的状态来限制查询结果。但是您不会将此参数与您选择的任何内容进行比较。

想想这个查询(没有意义):

SELECT * FROM SOMETABLE WHERE :list IS EMPTY

所以我认为你需要在两个不同的查询之间进行选择之前检查 :list 是否为空:

如果:list不为空:...WHERE x.id IN :list

如果:list为空:(NO WHERE CLAUSE AT ALL)

于 2013-02-27T17:10:11.070 回答