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。 因此,在使用此策略时,不应使用AUTO
或IDENTITY
。
所以我担心你不想要的东西(我建议使用GenerationType.TABLE
)。
- Hibernate使用hibernate.jdbc.batch_versioned_data保存过时数据
- 如何在Spring Applications中处理生产数据库的模式升级
- 使用jdbc / hibernate获取当前数据库事务ID?
- 当在Spring / Hibernate项目中需要访问数据库时,exceptionjava.lang.NullPointerException
- 标准渴望fetch-joined集合以避免n + 1选择
- JPA:如何映射SQL Server uniqueidentifier类型
- JavaFX + Hibernate(JPA)持久性+ Derby DB
- hibernate与c3p0:createClob()尚未实现
- 通过JPA注释更改类层次结构分支中的inheritance策略