我们通过分配以下内容通过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/

10-10 15:17