我有一个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会为此映射在数据库上创建唯一约束。然而,没有发生过这样的事情。
我做错了什么?
答案 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”。它会自动接受并使用唯一键
应用约束