Как создать двухколонный уникальный ключ с привязкой HBM? - PullRequest
1 голос
/ 14 декабря 2010

У меня отображение спящего режима:

<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 ]

1 голос
/ 28 ноября 2011

Похоже, вы не делаете ничего плохого. Мы делаем то же самое в нашем проекте, и он отлично работает. Я думал, что однажды возникла та же самая проблема, потому что я не смог найти константы в нашей оракулярной базе данных, потому что я думал, что указанное значение атрибута уникального ключа (в вашем случае 'lrt_bps_bpr_acs_uk') используется как имя_ограничения в БД. Но это не так (по крайней мере, с оракулом DB).

0 голосов
/ 04 августа 2012

Не указывайте name = "lrt_bps_bpr_acs_uk" unique = "true" в элементе свойств.Он автоматически принимает его и применяет ограничение с уникальным ключом

0 голосов
/ 14 декабря 2010

Какой фактический DDL генерирует Hibernate? Каким будет DDL, если вы удалите параметры уникального ключа? Что такое версия Hibernate?

Из документации кажется, что вы делаете это правильно: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-properties

...