【发布时间】:2016-11-03 00:26:39
【问题描述】:
我非常了解继承策略,例如:
1.每个层次结构的表
2.每个具体类的表
3.每个子类的表
那么它们都是继承策略,那么我们应该根据什么来选择呢?
【问题讨论】:
标签: hibernate jpa inheritance orm
我非常了解继承策略,例如:
1.每个层次结构的表
2.每个具体类的表
3.每个子类的表
那么它们都是继承策略,那么我们应该根据什么来选择呢?
【问题讨论】:
标签: hibernate jpa inheritance orm
休眠继承:
为了在hibernate中实现继承,Hibernate为我们提供了3种不同类型的策略。
每个类的表的休眠继承
每个具体类的表的休眠继承
每个子类的表的休眠继承
要将继承类映射到数据库表,我们可以使用上述任何一种策略。没有哪个策略是最佳策略的概念,根据我们的应用需求,我们可以选择上述策略之一。
每个类的表的休眠继承:
如果我们想将所有类层次结构的数据保存到数据库的单个表中,我们可以选择这种策略。对于每个类策略的这个表以及对象详细信息,hibernate 将插入一个称为 discriminator 的特殊值,以便在表中轻松识别 pojo 类对象。
每个具体类的表的休眠继承:
当需要将每个具体的继承类对象存储在单独的数据库表中时,选择了这种休眠继承策略。对于这个策略,鉴别器是可选的。
每个子类的表的休眠继承:
如果我们想将一个超类及其子类映射到它自己的数据库表中,我们可以选择这种休眠继承策略。一个子类表有一个主键,它也是一个外键来获取与超类表的关系。
欲了解更多信息和示例:Inheritance mapping
【讨论】: