Hibernate关联关系映射配置

1、配置多对一单向映射

   //对 tab_people表进行配置,factory表不用配置

<hibernate-mapping>

  <class name="com.mr.people.People" table="tab_people">

  <!-- id值 -->
  <id name="id" column="id" type="int">
<generator class="native"/>
</id>
<!-- 公民姓名 -->
<property name="name" type="string" length="45">
<column name="name"/>
</property>
<!-- 公民性别 -->
<property name="sex" type="string" length="2">
<column name="sex"/>
</property>
<!-- 公民年龄 -->
<property name="age" type="int">
<column name="age"/>
</property>
<!-- 多对一关联映射 -->

<many-to-one name="factory" class="com.mr.factory.Factory">

                        <column name="factoryid"/>

                </many-to-one/>

  </class>
 </hibernate-mapping>

 

2、配置多对一双向关联

 

(1)配置factory表:   

            <!--定义一对多关联映射--!>

                <set name="products" inverse="true">
<key column="factoryid"/>
<one-to-many class="com.mr.product.Product"/>
</set>

    注:inverse属性 用于控制方向反转,将inverse属性设置为true,表示Factory对象不再是主控方,将关联关系维护方交给Product类来完成,在Product对象持久化时会主动获取关联Factory的id。

(2)配置product表:    

 

                <many-to-one name="factory" class="com.mr.factory.Factory">

                        <column name="factoryid"/>

                </many-to-one/>

3、配置一对一主键关联

(1)配置tab_people表:

                <!-- 一对一映射 -->
<one-to-one name="idcard" class="com.mr.idcard.IDcard" cascade="all"/>

(2)配置tab_idcard表:

     <one-to-one name="com.mr.people.People" constrained="true"></one-to-one>

注:一对一主键关联是通过主键形成一对一的映射。

 

4、配置一对一主键关联

(1)配置tab_people表:

     <!-- 一对一映射 -->

    <many-to-one name="idcard" unique="true">

    <column name="card_id"/>

</many-to-one>

(2)tab_idcard表生成外键:

     <id name="id" column="id" type="int">         <!-- id值 -->
<generator class="foreign">     <!-- 外键生成 -->
<param name="property">people</param>
</generator>
 </id>

注:一对一外键关联实际就是多对一关联的一个特例,需要保证关联字段的唯一性。

 

5、配置多对多关联关系

    (1)配置tab_user表(由于多对多关联,所以需要引入Set集合)

        <set name="roles" table="tab_mapping">
<key column="user_id"></key>
<many-to-many class="com.mr.role.Role" column="role_id"/>

</set>

    (2)配置tab_role表

        <set name="users" table="tab_mapping">
<key column="role_id"></key>
<many-to-many class="com.mr.user.User" column="user_id"/>

</set>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值