现在的位置: 首页 > 综合 > 正文

hibernate映射总结详解: 按主键映射一对一关联关系

2014年01月25日 ⁄ 综合 ⁄ 共 844字 ⁄ 字号 评论关闭

. 映射实体关联关系   ---   一对一关联关系   ---   按主键映射

如果customer表和 address表定义成如下关系:

Customers

Addresses

Id   <pk>

Id   <pk> <fk>

Name

City

 

Street

 

Province

 

Zipcode

          

Addresses表的idaddresses的主键,同时作为外键关联customers表。

customer.hbm.xml中,用<one-to-one>元素来映射customer类的address属性:

<one-to-one name=address class=mypack.addresscascade=all>

address.hbm.xml中,用<one-to-one>元素来映射address类的customer属性:

<one-to-one name=customer class=mypack.customerconstrained =true>

<one-to-one>元素的constrained 属性为true,表明addresses表的id主键同时作为外键参照customers表。在address.hbm.xml中,必须为oid使用foreign标识符生成策略:

<id name=id type=long column=id>

   <generator class=foreign>

      <param name=property>customer</param>

   </generator>

</id>

如果使用foreign标识符生成策略,Hibernate会使address对象与关联的customer对象共享一个oid

总结:一对一按主键映射,用<one-to-one>写在每个one方。在被关联即address.hbm.xml映射文件中<one-to-one>元素要加上constrained=true属性。并且id要用foreign标识符策略。

抱歉!评论已关闭.