hibernate一对一实现

1.one-to-one

一对一:有一个是主对象,一个从对象

 

主对象的映射文件

<hibernate-mapping

    package="cn.yjj.hibernate.many2one.domain">

 

    <class name="Person">

      

       <id name="id">

           <generator class="native"/>

       </id>

      

       <property name="name"/>

      

       <one-to-one name="idCard"/>

    </class>

   

</hibernate-mapping>

 

 

从对象的映射文件

<hibernate-mapping

    package="cn.yjj.hibernate.many2one.domain">

 

    <class name="IdCard" table="id_card">

      

       <id name="id">

           <generator class="foreign">

              <param name="property">person</param>

           </generator>

       </id>

      

       <property name="usefulLife" column="useful_life"/>

      

       <one-to-one name="person" constrained="true"/>

    </class>

   

</hibernate-mapping>

 

 

只有加上约束(constrained=true)后,从对象才和主对象建立关联,从对象的主键和外键是同一个对象,都是主对象的主键

 

 

2.many-to-one

加一个唯一的限制条件

 

<hibernate-mapping

    package="cn.yjj.hibernate.many2one.domain">

 

    <class name="IdCard" table="id_card">

      

       <id name="id">

           <generator class="native"/>

       <!-- 

           <generator class="foreign">

              <param name="property">person</param>

           </generator>

       -->

       </id>

      

       <property name="usefulLife" column="useful_life"/>

      

       <!-- 

       <one-to-one name="person" constrained="true"/>

       -->

      

       <many-to-one name="person" column="person_id" unique="true"/>

    </class>

   

</hibernate-mapping>

 

 

主对象

<hibernate-mapping

    package="cn.yjj.hibernate.many2one.domain">

 

    <class name="Person">

      

       <id name="id">

           <generator class="native"/>

       </id>

      

       <property name="name"/>

      

       <one-to-one name="idCard" property-ref="person"/>

    </class>

   

</hibernate-mapping>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值