标签:style blog http color ar sp strong 文件 数据
² 两个对象之间是一对一的关系,如Person-IdCard(人—身份证号)
² 有两种策略可以实现一对一的关联映射
实例场景:人<—-> 身份证号(Person<->IdCard)双向:互相持有对方的引用
public class IdCard { private int id; private String cardNo; private Person person; //持有Person对象的引用 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCardNo() { return cardNo; } public void setCardNo(String cardNo) { this.cardNo = cardNo; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } } |
public class Person { private int id; private String name; private IdCard idCard;//持有IdCard对象的引用 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public IdCard getIdCard() { return idCard; } public void setIdCard(IdCard idCard) { this.idCard = idCard; } } |
<hibernate-mapping> <class name="com.wjt276.hibernate.Person" table="t_person"> <id name="id" column="id"> <generator class="native"/> </id> <property name="name"/> <!-- <many-to-one>:在多的一端(当前Person一端),加入一个外键(当前为idCard)指向一的一端(当前IdCard),但多对一 关联映射字段是可以重复的,所以需要加入一个唯一条件unique="true",这样就可以此字段唯一了。--> <many-to-one name="idCard" unique="true"/> </class> </hibernate-mapping> |
<hibernate-mapping> <class name="com.wjt276.hibernate.IdCard" table="t_idcard"> <id name="id" column="id"> <generator class="native"/> </id> <property name="cardNo"/> <!-- <one-to-one>标签:告诉hibernate如何加载其关联对象 property-ref属性:是根据哪个字段进行比较加载数据 --> <one-to-one name="person" property-ref="idCard"></one-to-one> </class> </hibernate-mapping> |
一对一 唯一外键 关联映射 双向 需要在另一端(当前IdCard),添加<one-to-one>标签,指示hibernate如何加载其关联对象(或引用对象),默认根据主键加载(加载person),外键关联映射中,因为两个实体采用的是person的外键来维护的关系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:
<!-- <one-to-one>标签:告诉hibernate如何加载其关联对象 property-ref属性:是根据哪个字段进行比较加载数据 --> <one-to-one name="person" property-ref="idCard"></one-to-one> |
012一对一 唯一外键关联映射_双向(one-to-one)
标签:style blog http color ar sp strong 文件 数据
原文地址:http://www.cnblogs.com/crazylqy/p/4078059.html