加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – distinct内连接hql

发布时间:2020-12-15 02:34:15 所属栏目:Java 来源:网络整理
导读:我有以下hibernate实体 public class Container { ... @OneToMany private ListACLEntry aclEntries;} 为了保护我的容器实例,我使用以下实体: public class ACLEntry { ... private Long sid; private boolean principal; private Integer mask;} 将自动创
我有以下hibernate实体

public class Container {
  ...

  @OneToMany
  private List<ACLEntry> aclEntries;
}

为了保护我的容器实例,我使用以下实体:

public class ACLEntry {

  ...
  private Long sid;
  private boolean principal;
  private Integer mask;

}

将自动创建hql-queries以便搜索容器实例,
将创建以下查询:

select container from Container container 
inner join container.aclEntries as aclEntry 
with bitwise_and (aclEntry.mask,1) = 1 and 
   (aclEntry.sid = :userId or aclEntry.sid = :roleId)

这个问题是,aclentry连接可能返回2个结果,这将导致重复的容器结果.

有谁知道如何解决这个问题?

解决方法

据我所知,你需要一个可容纳Container对象的多个条目的容器,只需用以下代码替换你的hql查询:

将select distinct添加为本机查询.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读