(实体关系映射层次图,可以看hibernate映射总结详解的第一篇文章)
Ⅳ. 映射实体关联关系 --- 一对一关联关系 --- 按外键映射
有关customer表和address表如下所示:
Customer表 |
| Address表 |
Id <pk> | Id <pk> | |
Name | City | |
Home_add_id <fk> | Street | |
Province | ||
zipcode |
Customer的映射文件代码片段如下:
……
<many-to-one name=“homeAddress” column=“home_add_id” class=“mypack.address”cascade=“all” unique=“true”/>
……
Address映射文件代码片段如下:
用<one-to-one>元素来映射address类的customer属性.
<one-to-one name=“customer” class=“mypack.customer” property-ref=“homeAddress”/>
property-ref属性为homeAddress,表明建立从homeAddress对象到coustomer对象的关联。因此只要调用homeAddress持久化对象的getCustomer() ,就能导航到Customer对象。
总结:一对一映射,<many-to-one>出现在有对应属性的映射文件,unique属性为true; <one-to-one>出现在参照表的映射文件,property-ref等于其映射的对象。