Java / Hibernate JPA:InheritanceType.TABLE_PER_CLASS和ID

我正在使用Hibernate JPA。

假设我有这些类:

AbstractPerson |--> ConcreteEmployee |--> ConcreteCustomer 

有没有办法让具体类具有独立的ID?

我正在使用InheritanceType.TABLE_PER_CLASS。

从Hibernate Annotations参考指南:

2.2.4.1。 每class表

这个策略有许多缺点(特别是多态查询和关联),在JPA规范,Hibernate参考文档,Hibernate in Action以及许多其他地方都有解释。 Hibernate解决了大多数使用SQL UNION查询实现此策略的问题。 它通常用于inheritance层次结构的顶级:

 @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Flight implements Serializable { ... } 

该策略支持一对多关联,前提是它们是双向的。 此策略不支持IDENTITY生成器策略:必须在多个表之间共享id。 因此,在使用此策略时,不应使用AUTOIDENTITY

所以我担心你不想要的东西(我建议使用GenerationType.TABLE )。