日期:2014-05-17  浏览次数:20761 次

请教:hibernate多对多出现set不断循环
本帖最后由 kaidishi 于 2013-12-21 15:41:05 编辑
单位dept表和分组group表,一个组可以有多个单位,一个单位可以在多个组。

class Dept{
  ....
  Set<Group> groups;
  get/set....
}

class Group{
 ....
 set<Dept> depts;
 get/set....
}


配置

Dept

 <set name="groups" table="DEPT_TO_GROUP" inverse="true" >
            <key column="DEPTID"/>
            <many-to-many class="com.Group" column="GROUPID" />
  </set>


Group

 <set name="depts"  table="DEPT_TO_GROUP">
            <key column="GROUPID"/>
            <many-to-many class="com.bean.Dept" column="DEPTID"/>
 </set>

在一次偶然的情况下,出现了下面的错误【之前是没问题的,而且是在调用set<>的时候报错,因为set<>既不是null,也没有size】


后来查看读取数据的时候发现,set里面的数据会不断的去找下一个数据

请问是哪里出了问题?

------解决方案--------------------
我以前好像遇到过这个问题的,我都是把多的一方都配置了lazy=true,要用到时再用hql fetch关键字查询出来
------解决方案--------------------
1.一方设为lazy,
2.或者在查询时用 join fetch,