2012-04-17 49 views
2

我有一個應用程序使用Hibernate每個表的子類設置。不幸的是,審計的目的,每個表有兩列:具有重複列名的休眠表每子類

  • LASTUPDATEDBY VARCHAR(16)
  • LASTUPDATEDTIME TIMESTAMP

映射創建父東西,子類是這樣的:

@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

在子類

+0

它不會工作刪除

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

。父表和每個子表都具有該列,並且需要爲審計目的而填充它。 – Jason 2012-04-17 13:51:57

+0

但子類會繼承超類嗎? – slipset 2012-04-17 19:40:46

+0

是的。不幸的是,它是一個傳統的數據庫模式(和一個傳統的DBA)。 – Jason 2012-04-17 23:11:41