我正在使用Hibernate JPA。
假设我有这些课程:
AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer
有没有办法让具体类具有独立的ID?
我正在使用InheritanceType.TABLE_PER_CLASS。
答案 0 :(得分:8)
来自Hibernate Annotations参考指南:
2.2.4.1. Table per class
这种策略有许多缺点(尤其是 多态查询和 协会)在JPA中解释 spec,Hibernate参考 文档,Hibernate in Action, 和许多其他地方。 Hibernate的工作 他们中的大多数人实施这一点 使用
SQL UNION
查询的策略。它 通常用于顶级 继承层次结构:@Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Flight implements Serializable { ... }
此策略支持一对多 协会规定他们是 双向的。 这个策略确实如此 不支持
IDENTITY
生成器 策略:必须共享id 跨几个表。所以, 在使用这种策略时,你应该这样做 不要使用AUTO
或IDENTITY
。
所以我担心你不想要的东西(我建议使用GenerationType.TABLE
)。