Используется ли аннотация ForeignKey только для создания схемы HBM2DDL? - PullRequest
1 голос
/ 13 июля 2011

У меня проблема с тем, как Hibernate генерирует имена внешних ключей при использовании стратегии наследования TABLE_PER_CLASS: К внешним ключам добавляется случайное число при использовании наследования TABLE_PER_CLASS Hibernate

Поэтому мне интересно, могу ли я просто заменить аннотацию следующим текстом:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Entity
abstract class Item {
    @ManyToOne
    @ForeignKey(name="FK_ITEM_ORG_CHANGEME")
    @JoinColumn(name="ORG_ID")
    private Organization org
}

Таким образом, я всегда знаю, что нужно вернуться к сгенерированному DDL и заменить все вхождения CHANGEME. Hibernate делает что-нибудь еще с атрибутом @ForeignKey, о котором я не знаю, или это хороший обходной путь?

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Правильно, @ForeignKey используется только HBM2DDL (или его младшим братом, который генерирует модель домена из существующей базы данных, но вы не используете, как кажется).

1 голос
/ 16 июля 2011

Возможно, вы можете переопределить такое поведение с помощью собственной переменной Naming - http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/cfg/NamingStrategy.html#foreignKeyColumnName(java.lang.String, java.lang.String, java.lang.String, java.lang.String)?

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