系统学习hibernate之六:一对一外键关联映射双向关联

hibernate一对一唯一外键关联映射(双向关联PersonIdCard)

一对一唯一外键关联双向,需要在另一端(idcard),添加标签,指示hibernate如何加载

其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,

所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:

1、Person的POJO类:

1public class Person {<br />2<br />3  private int id;<br />4<br />5  private String name;<br />6<br />7  private IdCard idCard;<br />8//省略setter、getter方法<br />9}

2、IdCard的POJO类:

1public class IdCard {<br />2<br />3  private int id;<br />4<br />5  private String cardNo;<br />6<br />7  private Person person;<br />8//省略setter、getter方法<br />9}

3、Person的映射文件Person.hbm.xml

1<?xml version="1.0"?><br />2<!DOCTYPE hibernate-mapping PUBLIC<br />3  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />4  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br />5<hibernate-mapping><br />6  <class name="org.apple.hibernate.Person" table="t_person"><br />7    <id name="id"><br />8      <generaTor class="native"/><br />9    </id><br />10    <property name="name"/><br />11    <many-to-one name="idCard" unique="true"/><br />12  </class><br />13</hibernate-mapping>

4、IdCard的映射文件IdCard.hbm.xml

1<?xml version="1.0"?><br />2<!DOCTYPE hibernate-mapping PUBLIC<br />3  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />4  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br />5<hibernate-mapping><br />6  <class name="org.apple.hibernate.IdCard" table="t_idcard"><br />7    <id name="id"><br />8      <generaTor class="native"/><br />9    </id><br />10    <property name="cardNo"/><br />11    <one-to-one name="person" property-ref="idCard"/><br />12  </class><br />13</hibernate-mapping>

回避现实的人,未来将更不理想。

系统学习hibernate之六:一对一外键关联映射双向关联

相关文章:

你感兴趣的文章:

标签云: