Hibernate在one-to-one的关系里可能因为 约束 问题导致保存某个对象的时候出现如题的错误。
例子:User和Guider是一对一的关系
User.hbm.xml:
<one-to-one name="Guider" class="com.yh.model.Guider" constrained="true" outer-join="true" cascade="all" />
这里 constrained="true" 表示以Guider的主键约束User
Guider.hbm.xml:
<one-to-one name="User" class="com.yh.model.User" constrained="true" outer-join="true"/>
这里 constrained="true" 表示以User的主键约束Guider
当我们session.save(User),就会报错,因为两个对象互相约束,保存User时还没有Guider的主键生成所以报错。
这时如果把User.hbm.xml的constrained="true"去掉就行,变成User约束Guider,而Guider没有约束User。