【发布时间】:2011-01-17 09:43:44
【问题描述】:
在学习 hibernate 时,我遇到了一种情况,Hibernate 似乎有循环引用,我不知道如何度过这种情况。我有两个班级的父母
private String uuid;
private String name;
private Set<ChildClass> childclass=new HashSet<ChildClass>();
这是相同的映射文件
<property name="name" type="string" column="NAME" length="255" />
<set name="childclass" table="Parent_Child" lazy="extra"
cascade="save-update">
<key column="parent_id" />
<many-to-many class="com.test.child.ChildClass" column="child_id"/>
</set>
子条目如下
private String name;
private Set<ParentClass> parent=new HashSet<ParentClass>();
private String child_id;
<property name="name" type="string" column="NAME" length="255" />
<set name="parent" table="Parent_Child" inverse="true" lazy="extra"
cascade="save-update">
<key column="child_id"/>
<many-to-many class="com.test.parent.ParentClass" column="PARENT_ID"/>
</set>
当我在我的主代码中尝试这样的事情时
tx1.begin();
String query="from ParentClass as pc";
Query query1=session1.createQuery(query);
List list= query1.list();
现在真正的问题出现了,当我尝试使用迭代器方法或任何进入无限循环的集合方法迭代列表时,就像父级引用子级并且子级引用父级一样
在我即将完成的任务中,我有一个父类,它有这么多对子类的集合引用,它们都具有多对一和一对多的关系。
所以似乎在那种情况下,我会尝试从父实体中获取子实体,例如
parent.getChild().iterator()
它将运行到循环引用。 如果我走错了路,请建议我如何避免这种情况或纠正我
【问题讨论】:
标签: java hibernate hibernate-mapping