两个实体类对应的数据库table需要拥有相同的主键.
比如A类和B类,A有属性id,B类也有相同属性id.
在A类中设置属性 B b;
在B类中设置属性 A a;
在表格A和B中,id都是主键.
在B中id不仅是主键还是外键.
此时对于A的配置文件如:
<id name="id" column="id" type="integer">
<generator class="assigned"/> </id>
B.hbm.xml中以a为外键的参数.也就是外键id对应a中的主键id.
<class name="B" table="B">
<!-- id是主键 -->
<id name="id" column="id" type="integer">
<generator class="foreign">
<param name="property">a</param>
</generator>
</id>
Test:
A a=new A(1);
B b=new B(null);
a.setB(b);
b.setA(a);
session.save(a);
session.save(b);
session.beginTransaction().commit();