1.单向关联
(1)基于主键关联的持久化类不能拥有自己的主键生成策略,必须依附于关联类,由关键类来生成主键。
(2)一对一主键映射中,默认了cascade属性。
示例:A---->B 在A中持有B的引用
B的映射文件:
<hibernate-mapping>
<class name="包名+B">
<id name="id">
<generator class="native"></generator>
</id>
<property name="..."></property>。。。。。。
</class>
A的映射文件:
<hibernate-mapping>
<class name="包名+A">
<id name="id">
<generator class="foreign">
<param name="property">B在A中的引用</param>
</generator>
</id>
<property name="..."></property>
......
<one-to-one name="B在A中的引用" constrained="true"></one-to-one>
</class>
(1)一对一主键关联映射可以避免多余的字段被创建,因为两个实体对象的id保持相同。
(2)从A的映射文件:主键的生成策略来看依附于B在A中的引用,即依附于B。
2.双向关联
A<------->B
修改B的配置文件如下:
<hibernate-mapping>
<class name="包名+B">
<id name="id">
<generator class="native"></generator>
</id>
<property name="..."></property>
........
<one-to-one name="A在B中的引用"></one-to-one>
</class>
</hibernate-mapping>