2010-07-20 10 views
9

Istnieje zastrzeżonych hibernacji adnotacje, aby określić klucz obcy przymusu nazwy, które są używane w czasie generacji DDL: org.hibernate.annotations.ForeignKey.Jak wybrać DDL klucz podstawowy nazwy więzów z JPA/Hibernate

Jest tam również sposób określić klucz podstawowy przymusu nazwy?

+0

Inni dostawcy JPA na to zezwalają (na przykład te, które obsługują interfejs API JDO (np. DataNucleus), ponieważ jest on standardem dla tego interfejsu API), ale nie są częścią interfejsu API JPA (do wersji JPA 2.2 włącznie) –

Odpowiedz

8

Niemożliwe ze standardowym JPA i nie jest obsługiwany przez Hibernate dla klucz podstawowy ani ograniczeń.

Istnieje rzeczywiście bardzo stary problem dotyczący tej prośby o funkcję (HB-1245), ale wygląda na to, że nie zwraca ona zbytniej uwagi.

1

Jeżeli mówimy o wyborze nazwy swojego klucza podstawowego (w bazie danych), Hibernate może nie zrobić.

Zapamiętaj, Hibernacja jest ramą, która przede wszystkim koncentruje się na odwzorowywaniu obiektów, a nie na tworzeniu/utrzymywaniu jednostek baz danych.

W odniesieniu do definiowania klucza podstawowego, poniższy odnośnik (szczególnie 2.2.3.2) może być pomocne: Mapping identifier properties in the JBoss Hibernate guide

+0

True , Mam na myśli * imię * ograniczenia PK. Biorąc pod uwagę, że istnieje mechanizm, aby to zrobić dla ograniczeń FK, miałem nadzieję, że istnieje podobny mechanizm dla ograniczeń PK. – Jan

+0

Wygląda na to, że JDO (http://java.sun.com/jdo/) pozwala Ci przynajmniej zdefiniować nazwę używanego indeksu: to oczywiście nie to samo co klucz podstawowy. (patrz http://www.objectdb.com/java/jpa/entity/index#Single_Field_Index) – Marco

Powiązane problemy