我們通過指定全自動創建我們的表並通過休眠:休眠忽略@Table(name =「...」)的擴展類 - 創建表名全部小寫
@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
就像我說的,正常的表一切工作正常。
不確定它是否相關,但在使用單表繼承策略時需要指定鑑別器列和值。 – Perception 2011-12-22 14:56:57
@Perception我不認爲你**必須**提供鑑別器列。 JPA 2.0 FR規範說(11.1.10「DiscriminatorColumn Annotation」):*「如果DiscriminatorColumn註釋缺失,並且需要鑑別器列,則鑑別器列的名稱默認爲」DTYPE「,鑑別器類型爲STRING。 * – 2011-12-22 15:22:20
是的,他自動做到這一點。想知道那些DTYPE列來自哪裏......;)如果我在每個目標應用程序中總是隻有一個擴展類,我真的可以禁用這些列嗎? – Pete 2011-12-22 15:25:32