现在的位置: 首页 > 综合 > 正文

hibernate映射总结详解: 映射一对多双向自身关联关系

2014年01月20日 ⁄ 综合 ⁄ 共 925字 ⁄ 字号 评论关闭
 

Ⅲ. 映射实体关联关系---  一对多关联关系  ---  一对多双向自身关联映射:
以category为例,它代表商品类别,存在一对多双向关联。如:食品类别包括蔬菜类型和水果类型,水果类型又包括苹果类别和桔子类别。每一种类别代表一个category对象,这些对象形成了树型数据结构。每个category可以和一个父类别catetory对象关联,同时还可以和一组子类别category对象关联。为了表达这种一对多双向自身关联,可以在category类中定义两个属性parentCategory(引用父类别对象)和 childCategory(引用一组子类别对象)。
Category表两个字段: id 和name,category_id
Category持久化类代码片段如下:
private Category parentCategory;
private Category childCategory;
 
public Category getParentCategory(){………}
public void setParentCategory(){………}
public Category getChildCategory(){………}
public void setChildCategory(){………}
 
Category类的映射文件如下:
……
<many-to-one name=“parentCategory” column=“category_id” class=“mypack.Category”/>
 
<set name=“childCategory”cascade=“save-update” inverse=“true”>
    <key column=“category_id”/>
    <one-to-many class=“mypack.Category”/>
 </set> 
……
注意:这个映射文件中包含<many-to-one>和<set>这个以下两种映射类型中的元素。它引用了parentCategory和childCategory属性来解决父子之间的关联。
总结:一对多双向自身关联关系,在映射文件中用<many-to-one>映射对应的one属性;用<set>映射对应的many属性。

 

抱歉!评论已关闭.