hbm文件中的两个标签和unique="true"中的一对一和多对一有什么不同?我刚刚了解到,为了获得双向一对一映射,我需要在两个hbm文件上使用一对一标记。我不能在hibernate中使用多对一的unique="true"来获得双向行为吗?
在这个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
发布于 2014-09-10 14:06:37
如果您在应用程序启动时没有使用Hibernate生成您的unique = true schema,那么这个SQL就没有任何意义。Hibernate不强制值的唯一性,这是一个纯数据库函数。
如果您使用Hibernate生成数据库模式,那么它会在您设置了unique=true的任何属性上放置一个唯一约束,但是如果您将Hibernate指向一个已经存在的数据库,并且只验证该数据库的模式,则Hibernate不会检查唯一约束是否存在。
这适用于其他属性(从我的头顶看)是insertable、updateable和nullable
如果你想要一个关于如何在Hibernate中创建不同类型的关系的指南,我写了一个很方便的指南,你可以找到here。只需将我的注释示例转换为您的.cfg文件,或者只使用注释,您就应该设置好了。
https://stackoverflow.com/questions/25756993
复制相似问题