Hibernate中left join fetch 查询出现重复的对象
Hibernate中一对多~Line是1,Sign是N我使用createQuery("fromLinelleftjoinfetchl.signs").list()来进行外...
Hibernate中一对多~Line是1,Sign是N
我使用createQuery("from Line l left join fetch l.signs").list()来进行外连接查询,出现重复的对象,查看Hibernate官方文档发现是fetch的操作是基于结果集的操作,提供另外的方法但是对分页又产生影响,又自己尝试写了去重复的类,还是不能那个解决分页问题。请问有什么思路可以解决此类外连接问题?
如图:两个Line对象中所有的属性都一样且拥有一样的Set<Sign>
谢了~这个真的可以!
再问下如果我用Criteria criteria = session.createCriteria(Line.class)的方式去criteria.createAlias("signs", "s", Criteria.LEFT_JOIN);这个样子怎么来消除重复记录呢,不想用DISTINCT_ROOT_ENTITY。。。
谢谢啦! 展开
我使用createQuery("from Line l left join fetch l.signs").list()来进行外连接查询,出现重复的对象,查看Hibernate官方文档发现是fetch的操作是基于结果集的操作,提供另外的方法但是对分页又产生影响,又自己尝试写了去重复的类,还是不能那个解决分页问题。请问有什么思路可以解决此类外连接问题?
如图:两个Line对象中所有的属性都一样且拥有一样的Set<Sign>
谢了~这个真的可以!
再问下如果我用Criteria criteria = session.createCriteria(Line.class)的方式去criteria.createAlias("signs", "s", Criteria.LEFT_JOIN);这个样子怎么来消除重复记录呢,不想用DISTINCT_ROOT_ENTITY。。。
谢谢啦! 展开
1个回答
展开全部
你改成 createQuery("select distinct l from Line l left join fetch l.signs").list()就可以了嘛
追问
谢了~这个真的可以!
再问下如果我用Criteria criteria = session.createCriteria(Line.class)的方式去criteria.createAlias("signs", "s", Criteria.LEFT_JOIN);这个样子怎么来消除重复记录呢,不想用DISTINCT_ROOT_ENTITY。。。
谢谢啦!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询