我有一个JPQL命名查询,它接受List一个参数.我正在使用IN短语中的参数:
...WHERE x.id IN :list
Run Code Online (Sandbox Code Playgroud)
我想做类似以下的事情,但语法显然不会让我:
...WHERE :list IS EMPTY OR x.id IN :list
Run Code Online (Sandbox Code Playgroud)
也不会:
...WHERE SIZE(:list) = 0 OR x.id IN :list
Run Code Online (Sandbox Code Playgroud)
我在JPA 2.0命名查询中尝试做什么是不可能的?我知道如何通过条件API或使用普通的旧JPQL字符串来完成它.
ben*_*n75 -4
您在查询中尝试执行的操作似乎毫无意义。您试图使用参数的状态来限制查询结果。但您不会将此参数与您选择的任何参数进行比较。
考虑一下这个查询(没有意义):
SELECT * FROM SOMETABLE WHERE :list IS EMPTY
Run Code Online (Sandbox Code Playgroud)
所以我认为您需要在两个不同的查询之间进行选择之前检查 :list 是否为空:
如果:list不为空:...WHERE x.id IN :list
如果:list为空:(NO WHERE CLAUSE AT ALL)
| 归档时间: |
|
| 查看次数: |
4212 次 |
| 最近记录: |