kaka的gravatar头像
kaka 2016-01-04 15:34:18
hibernate many-to-many ,left join fetch多查重复数据的问题

问题描述:项目中的用户和角色关系是多对多的关系,即在用户实体类中,定义了角色集合。字段设置如下:

hibernate many-to-many ,left join fetch多查重复数据的问题

项目中使用的查询方式如下:

hibernate many-to-many ,left join fetch多查重复数据的问题

当用户关联多个角色的时候,上述方法查询的结果有多条重复的数据,打印出的sql语句类似如下:

SELECT * FROM c_user u
     LEFT OUTER JOIN c_group_user cgu ON u.id=cgu.userId
     LEFT OUTER JOIN c_group g ON cgu.groupId=g.id
     LEFT OUTER JOIN c_user_role cur ON u.id=cur.userId
     LEFT OUTER JOIN c_role r ON cur.roleId=r.id
     WHERE u.assetTypeId IN (42) AND u.STATUS<>4 

原因就出现在  LEFT OUTER JOIN c_user_role cur ON u.id=cur.userId 这条语句上

解决办法如下:

hibernate many-to-many ,left join fetch多查重复数据的问题


打赏
最近浏览
moridzy 2019年12月26日
暂无贡献等级
nsq0006  LV6 2019年11月8日
lj3197 2019年8月1日
暂无贡献等级
laoxu99 2019年8月1日
暂无贡献等级
effeng  LV1 2019年4月3日
sycamo  LV2 2019年3月1日
xiex909  LV27 2019年1月22日
择城而就12  LV7 2018年9月15日
a258771316  LV1 2018年8月8日
lj89335405  LV1 2018年7月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友