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

时间:2014-10-27 14:08:12

标签: 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为空的情况下得到所有结果,如果有任何匹配那些结果。

1 个答案:

答案 0 :(得分:3)

尝试这是否有效

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