java - 这个 JPQL 查询字符串有什么问题

标签 java jpa jpql

SELECT m FROM Clientmessage m 
WHERE (((m.userid = 4) OR ( m.recipientid = 4 ))  
AND (m.isdeleted = false)  
AND ((m.currentstate IS NULL) 
OR (m.currentstate IN (NULL, 'CREATED', 'DELIVERED')))) 
order by m.timereceived

line 1, column 48: syntax error at [=]. Internal Exception: MismatchedTokenException(80!=82)

知道错误可能是什么吗?!我没主意了。

所以 stackoverflow 希望我解释为什么我的问题与可能的重复问题不同。说实话,我厌倦了这个网站。事实并非如此,如果每次有人认为我必须解释某些事情时我都必须解释这一点,我就会向其他地方寻求帮助。天啊。

最佳答案

我将发布一个答案,以便可以关闭问题 - 问题是 - 中的 NULL

m.currentstate IN (NULL, 'CREATED', 'DELIVERED')

您可以使用类似于NVAL的COALESCE函数

遗憾的是你的问题被编辑了,然后必须解释为什么重复是错误的

关于java - 这个 JPQL 查询字符串有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610759/

相关文章:

java - 无法在 Mac OS Catalina 上编辑 .profile

java - WizardDialog 中的 StackLayout 以及具有固定高度和动态显示滚动条的可变多行文本

java - XQuery 错误处理

java - 使用JPQL/JPA时如何使用date_format

Java Servlet 作为 HTTP 代理

javascript - 如何在点击html时运行java方法?

java - HQL 查询对关联对象的关联对象有条件

java - 如何使用 JPA 2.0 急切加载惰性字段?

java - JPA/JPQL数据列表注入(inject)

java - 使用 Spring Data JPA 和 @Query 注释仅获取第一个/最后一个元素