如何使用HBM映射创建双列唯一键约束?

时间:2010-12-14 14:28:23

标签: java hibernate hbm2ddl

我有一个hibernate映射:

<properties name="lrt_bps_bpr_acs_uk" unique="true">
    <many-to-one name="activitySummary" column="bps_acs_id" class="xyz.ActivitySummary"
    unique-key="lrt_bps_bpr_acs_uk"/>
    <many-to-one name="bestPractice" column="bps_bpr_id" class="xyz.BestPractice" 
        unique-key="lrt_bps_bpr_acs_uk"/>
</properties>

我预计hibernate会为此映射在数据库上创建唯一约束。然而,没有发生过这样的事情。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

好像你没有做错任何事。我们在项目中以同样的方式完成它并且工作正常。 我曾经想过有同样的问题因为我在oracle DB中找不到constaints因为我认为指定的unique-key属性值(在你的情况下是'lrt_bps_bpr_acs_uk')被用作DB中的constraint_name。但事实并非如此(至少对于oracle DB而言)。

答案 1 :(得分:0)

Hibernate生成的实际DDL是什么?如果删除unique-key参数,DDL会是什么?什么是Hibernate版本?

从文档中,您似乎正在正确地执行此操作: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-properties

答案 2 :(得分:0)

不要在properties元素中指定name =“lrt_bps_bpr_acs_uk”unique =“true”。它会自动接受并使用唯一键

应用约束