hbm文件中的两个标签如何一对一和多对一,唯一=“true”? 我刚刚了解到要获得双向一对一映射,我需要在两个hbm files.cant上使用一对一标签。我将两边都使用unique = true(hbm)多对一来获得hibernate中的双向行为?
在此link中,我找到了
<!-- In One-to-one we cannot specify the foreign key column
that has to be filled up
<one-to-one name="person" class="PersonOTO_B" cascade="all"
constrained="true"> </one-to-one>
-->
<many-to-one name="person" column="P_ID" unique="true"
not-null="true" lazy="false" />
以上原因是否有效?
此致 Jayendra
答案 0 :(得分:0)
如果您在应用程序启动时没有使用Hibernate生成SQL模式,那么unique = true
并不意味着什么。 Hibernate不强制值的唯一性,即纯数据库函数。
如果您使用Hibernate生成数据库模式,那么它会对您已设置unique=true
的任何属性设置唯一约束,但是如果您将Hibernate指向已存在的数据库,并且仅验证模式对于该数据库,Hibernate不会检查是否存在唯一约束。
这适用的其他属性(从头到尾)insertable
,updateable
和nullable
如果你想了解如何在Hibernate中创建不同类型的关系的指南,我写了一个方便的指南,你可以找到here。只需将我的注释示例翻译成.cfg文件,或者只使用注释,就可以设置。