Hibernate4多对多查询出重复的记录
--------------------编程问答-------------------- 应该是因为你的club查询时自动加载了member,一共三条club,所以也会查询出三条member。不知道你页面上和后台部分内容是怎么样写的啊。。。 --------------------编程问答-------------------- 用HashSet把members包装一下。 --------------------编程问答--------------------你觉得我的配置有没有问题?
我以前没有深入使用过Hibernate, 如果我所描述的是正常的话, 那hibernate也太不好用了, 因为这种case太正常不过了. --------------------编程问答--------------------
是一个Member加入了3个俱乐部Club, 现在我查Member列表, 并顺带把他们所属的Club查出来. 后台代码都是非常通用的Query.list(), Criteria.list()之类的. 页面代码和本文描述的问题没有关系. --------------------编程问答-------------------- 如果后台没写错,看打印的sql语言,我觉得还是你配置出问题了。。。 --------------------编程问答-------------------- 把club类上的@JoinTable配置去掉试试。。。。 --------------------编程问答--------------------
把club类上的@JoinTable配置去掉试试。。。。
谢谢关注.
我早上又试验了3个小时, 我发现是由于查询的方式引起的.
return this.getSession().createQuery("from Member").list();//这样就不会重复.
return this.getSession().createCriteria(Member.class).list();//这样就会重复.
不知道有什么解释. --------------------编程问答-------------------- 然后我看到别人给的解决方法是:
return this.getSession().createCriteria(Member.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).setFetchMode("clubs", FetchMode.JOIN).list();
--------------------编程问答-------------------- return this.getSession().createCriteria(Member.class).returnMaps().list();
改为这样应该也可以。 --------------------编程问答-------------------- hibernate left join fetch 使用方法解决重复数据:http://blog.csdn.net/xiaomaha/article/details/6623557 --------------------编程问答-------------------- Hibernate中,left join、inner join以及left join fetch区别http://www.iteye.com/problems/6491 --------------------编程问答--------------------
Hibernate中,left join、inner join以及left join fetch区别http://www.iteye.com/problems/6491
谢谢
补充:Java , Java EE