2012-04-17 2 views
2

У меня есть приложение, использующее настройку Hibernate table-per-subclass. К сожалению, для целей аудита, каждая таблица имеет два столбца:Hibernate Table-Per-Subclass with Duplicate Column Names

  • LASTUPDATEDBY VARCHAR (16)
  • LASTUPDATEDTIME TIMESTAMP

Mapping создает что-то в родительском и подклассы вроде этого:

@Column(name="LASTUPDATEDBY") 
public String getLastUpdatedBy() { 
    returh this.getLastUpdatedBy; 
} 

Поле называется одинаковым в родительском и подклассе. Изменение столбца не является вариантом.

Для полноты, это вызывает MappingException:

Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: 
com.myapp.domain.subclass1 column: LASTUPDATEDBY (should be mapped with 
insert="false" update="false") 

Может кто-нибудь помочь?

Джейсон

ответ

1

Удалить

@Column(name="LASTUPDATEDBY") 
public String getLastUpdatedBy() { 
    returh this.getLastUpdatedBy; 
} 

в подклассе

+0

Это не будет работать. Родительская таблица и каждая дочерняя таблица имеют этот столбец, и ее необходимо заполнять для целей аудита. – Jason

+0

Но подклассы наследуют от суперкласса? – slipset

+0

Да. К сожалению, его устаревшая схема базы данных (и устаревший DBA). – Jason