hibernate映射总结详解: 按主键映射一对一关联关系
2007-09-05 16:35
399 查看
Ⅴ. 映射实体关联关系 --- 一对一关联关系 --- 按主键映射
如果customer表和 address表定义成如下关系:
Addresses表的id是addresses的主键,同时作为外键关联customers表。
在customer.hbm.xml中,用<one-to-one>元素来映射customer类的address属性:
<one-to-one name=“address” class=“mypack.address”cascade=“all”>
在address.hbm.xml中,用<one-to-one>元素来映射address类的customer属性:
<one-to-one name=“customer” class=“mypack.customer”constrained =“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标识符策略。
如果customer表和 address表定义成如下关系:
Customers表 | Addresses表 |
Id <pk> | Id <pk> <fk> |
Name | City |
Street | |
Province | |
Zipcode |
在customer.hbm.xml中,用<one-to-one>元素来映射customer类的address属性:
<one-to-one name=“address” class=“mypack.address”cascade=“all”>
在address.hbm.xml中,用<one-to-one>元素来映射address类的customer属性:
<one-to-one name=“customer” class=“mypack.customer”constrained =“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标识符策略。
相关文章推荐
- hibernate映射总结详解: 按外键映射一对一关联关系
- Hibernate映射详解--一对一主键关联映射
- Hibernate之关联关系映射(一对一主键映射和一对一外键映射)
- Hibernate之基于主键映射的一对一关联关系
- hibernate映射总结详解: 映射一对多双向自身关联关系
- Hibernate之基于主键映射的一对一关联关系
- Hibernate_映射_关联关系_一对一映射3_基于主键的方式
- Hibernate关联关系映射之一对一(主键关联)
- Hibernate映射详解(三)--一对一主键关联映射
- hibernate映射总结详解: 映射多对一单向关联关系
- Hibernate之关联关系映射(一对一主键映射和一对一外键映射)
- Hibernate映射详解(三)--一对一主键关联映射
- hibernate映射总结详解: 映射一对多双向关联关系
- hibernate笔记-009-联合主键一对一映射
- Hibernate 一对一映射(共享主键)
- hibernate映射详解:一对一映射的两种实现方式
- SSH:Hibernate框架(七种关联关系映射及配置详解)
- Hibernate关联关系映射-----基于连接表的单向一对一映射
- Hibernate之基于外键映射的一对一(1-1)关联关系
- hibernate中的映射文件xxx.hbm.xml详解总结