java - 使用 OR 和 Null 运算符的 JPA 命名查询给出空结果

标签 java jpa

写命名查询

  @NamedQuery(name = PKGruppeBE.FIND_ALL_GROUP_SPECIFIC, query = "SELECT e FROM PKGruppeBE e 
  WHERE 
  (e.tkgroup.id = ?1 OR e.tkgroup IS NULL )")

但是查询没有给出正确的结果,

如果有匹配项,并且tkgroup为空则只给出匹配的结果,

如果没有匹配项,并且tkgroup 为空,则返回空结果。

我的要求是,我必须获得所有 tkgroup 为 null 的结果,如果有任何匹配项,也必须获得这些结果。

最佳答案

试试这个是否可行

SELECT e FROM PKGruppeBE e left join e.tkgroup gr WHERE gr.id = ?1 OR gr IS NULL

关于java - 使用 OR 和 Null 运算符的 JPA 命名查询给出空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26589388/

相关文章:

java - 如何从另一个线程或进程中提取数据(Android/Java)

java - Spring Data JPA save() 方法不遵循 hashcode/equals 约定

java - JPA @OneToMany 和@ManyToOne : back reference is null

mysql - 唯一的一个共享主键JPA关系

Java:有没有一种简单、快速的方法来对集合进行 AND、OR 或 XOR?

java - 我面临 Volley 超时错误和 mainThread 错误

java - Java session 超时

java - Spring Security 应用程序的用户类

java - Hibernate如何防止使用生成的ID重复输入

java - 如果找不到实体,则为 JPA 默认值