我们通过分配以下内容通过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
就像我说的,对于普通表,一切正常。
最佳答案
而不应该是基类中表的名称。
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "person_bank_account")
public class PersonBankAccount extends AbstractPersistable<Long> {
关于java - Hibernate对扩展类忽略@Table(name = "...")-创建的表名全部为小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8605566/