Java/Hibernate JPA:InheritanceType.TABLE_PER_CLASS和ID

Mik*_*ike 3 java hibernate jpa table-per-class

我正在使用Hibernate JPA.

假设我有这些类:

AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer
Run Code Online (Sandbox Code Playgroud)

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

我正在使用InheritanceType.TABLE_PER_CLASS.

Pas*_*ent 9

从Hibernate Annotations参考指南:

2.2.4.1.每班表

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

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Flight implements Serializable { ... } 
Run Code Online (Sandbox Code Playgroud)

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

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