ssh学习:hibernate关系映射(4)

25 篇文章 0 订阅
12 篇文章 0 订阅

hibernate中自身之间的一对多与多对一的关联关系

在一些实际的场景当中,通常会发现一个表之间也会存在一对多与多对一的关联关系。比如:同事之间,存在一个老伙计带着好几个新学员等等。

碰到这是不是也会觉得有点儿棘手啊?不过也不过如此而已。掌握了一般的双向的一对多关联关系也就不难了。可以吧通常的两个对象合成一个对象来处理。即双向的一对多关联关系中的多的那一端与一的那一端均写在同一个对象之中。

实例:以User为例:

public class User {
      private int id;
      private String name;
      private Set<User> users;
      private User parent;
      //省去get/set方法
}

 

Xxx.hbm.xml配置

<hibernate-mapping>
<class name="com.usc.geowind.lilin.bean.oneToMany.User" table="User">
<!-- type指明当前字段的类型 name对应实体中的属性名 -->
<id type="integer" name="id">
<!-- 提供ID自增的策略 native会根据数据库自行判断 -->
<generator class="native" />
</id>
<property name="name" type="string" column="name"></property>
<!-- 在自身的一对多多对一关联关系中配置,即集普通的一对多与多对一关联关系于一身 -->
<!-- 一对多的关系配置 -->
<set name="users">
<key column="parent_id"></key>
<one-to-many class="com.usc.geowind.lilin.bean.oneToMany.User" />
</set>
<!-- 多对一的关系关系配置 -->
<many-to-one name="parent" column="parent_id"></many-to-one>
</class>
</hibernate-mapping>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值