1.单向
(1) 是多对一关联映射的特例。
(2)使用<many-to-one name="...." unique="true"></many-to-one>标签
示例:A----->B
B的映射文件:
<hibernate-mapping>
<class name="包名+B">
<id name="id">
<generator class="native"></generator>
</id>
<property name="...."></property>
</class>
</hibernate-mapping>
A的映射文件:
<hibernate-mapping>
<class name="包名+A">
<id name="id">
<generator class="native"></generator>
</id>
<property name="..."></property>
<many-to-one name="B在A中的引用" unique="true"></many-to-one>
</class>
</hibernate-mapping>
注意:
测试时,必须首先存储B对象,否则会抛出异常,persistent状态的对象不能使用transient状态的对象;或者采用cascade属性。
2.双向
修改B的映射文件如下:
<hibernate-mapping>
<class name="包名+B">
<id name="id">
<generator class="native"></generator>
</id>
<property name="..."></property>
<one-to-one name="A在B中的引用" property-ref="B在A中的引用"></one-to-one>
</class>
</hibernate-mapping>