Hibernate игнорирует @Table (name = "...") для расширенных классов - все созданные имена таблиц в нижнем регистре - PullRequest
5 голосов
/ 22 декабря 2011

Мы создаем наши таблицы автоматически через Hibernate, назначая:

@Table(name = "some_table") 

Это раньше работало для "нормальных" сущностей. Но когда у нас есть абстрактный базовый класс:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class PersonBankAccount extends AbstractPersistable<Long> {

, который расширен на

@Entity
@Table(name = "person_bank_account")
public class PersonBankAccountSimple extends PersonBankAccount {

Результирующая таблица в базе данных называется

personbankaccount

Что здесь происходит?

Автогенератор говорит:

table not found: PersonBankAccount 

при первом создании и повторном запуске он говорит:

table found: personbankaccount

Как я уже говорил, для обычных таблиц все работает нормально.

1 Ответ

7 голосов
/ 22 декабря 2011

Не должно быть именем таблицы в базовом классе.

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "person_bank_account")
public class PersonBankAccount extends AbstractPersistable<Long> {
...