Как выбрать имена ограничений первичного ключа DDL с помощью JPA / Hibernate - PullRequest
12 голосов
/ 20 июля 2010

Существует собственная аннотация спящего режима для указания ограничения Foreign Key имен , которые используются во время генерации DDL: org.hibernate.annotations.ForeignKey.

Есть ли способ указать Первичный ключ ограничение имена ?

Ответы [ 3 ]

9 голосов
/ 20 июля 2010

Невозможно со стандартным JPA и не поддерживается Hibernate для ограничений первичного ключа.

На самом деле существует очень старая проблема с этим запросом ( HB-1245 ), но, похоже, он не привлекает большого внимания.

1 голос
/ 20 июля 2010

Если вы говорите о выборе имени вашего первичного ключа (в базе данных), Hibernate может , а не сделать это.

Помните, Hibernate - это фреймворк, который в первую очередь ориентирован на отображение объектов, а не на создание / обслуживание объектов базы данных.

Что касается определения первичного ключа, может быть полезна следующая ссылка (в частности, 2.2.3.2): Отображение свойств идентификатора в руководстве по JBoss Hibernate

0 голосов
/ 13 ноября 2018

Класс org.hibernate.mapping.PrimaryKey выполняет следующие действия:

public String sqlConstraintString(Dialect dialect) {
    StringBuilder buf = new StringBuilder("primary key (");
    Iterator iter = getColumnIterator();
    while ( iter.hasNext() ) {
        buf.append( ( (Column) iter.next() ).getQuotedName(dialect) );
        if ( iter.hasNext() ) {
            buf.append(", ");
        }
    }
    return buf.append(')').toString();
}

Решением было бы переопределить этот метод и вернуть строку, начинающуюся с «ограничения первичного ключа YOUR_CONSTRAINT_NAME», чтобы сделать это возможным. К сожалению, это невозможно переопределить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...