首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用unique = true时一对一与多对一之间的差异

使用unique = true时一对一与多对一之间的差异
EN

Stack Overflow用户
提问于 2014-09-10 11:47:11
回答 1查看 1.6K关注 0票数 1

hbm文件中的两个标签和unique="true"中的一对一和多对一有什么不同?我刚刚了解到,为了获得双向一对一映射,我需要在两个hbm文件上使用一对一标记。我不能在hibernate中使用多对一的unique="true"来获得双向行为吗?

在这个link中,我发现

代码语言:javascript
复制
<!-- 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

EN

回答 1

Stack Overflow用户

发布于 2014-09-10 14:06:37

如果您在应用程序启动时没有使用Hibernate生成您的unique = true schema,那么这个SQL就没有任何意义。Hibernate不强制值的唯一性,这是一个纯数据库函数。

如果您使用Hibernate生成数据库模式,那么它会在您设置了unique=true的任何属性上放置一个唯一约束,但是如果您将Hibernate指向一个已经存在的数据库,并且只验证该数据库的模式,则Hibernate不会检查唯一约束是否存在。

这适用于其他属性(从我的头顶看)是insertableupdateablenullable

如果你想要一个关于如何在Hibernate中创建不同类型的关系的指南,我写了一个很方便的指南,你可以找到here。只需将我的注释示例转换为您的.cfg文件,或者只使用注释,您就应该设置好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25756993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档