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> |