arj*_*soh 4 database hibernate jpa java-ee
我想知道是什么样的区别MappedSuperclass和Entity Abstract Class当一个人想要从一个超类派生Hibernate.我知道Hibernate不会在数据库中创建一个表MappedSuperclass.我在JavaEE文档中读到"抽象实体就像具体实体但不能被实例化".由于它们无法实例化,我推断数据库中没有匹配的表.我对吗?
如果是这样,在每种情况下,使用a MappedSuperclass和a Entity Abstract Class以及对软件和数据库的影响实际上有什么区别?
JB *_*zet 15
MappedSuperclass使用继承进行字段和代码重用.例如,如果您希望所有实体都有一个Long id和一个Long version字段,您可以使它们都扩展一个BaseEntity带有MappedSuperclass这两个字段的注释类,以及它们的getter,setter等.但是你永远不会有一个具有关联的实体使用BaseEntity:关联将始终与BaseEntity的特定子类相关联.
父实体用于"实体多态性".例如,你可以想象有两种Message:a EmailMessage和a SmsMessage.两者都包含源,目标和正文.但EmailMessage会有一个电子邮件地址和一个主题,而SmsMessage会有一个电话号码.
你可以想象一个Person实体包含一组类型的已发送消息Message.该集合实际上包含EmailMessage和SmsMessage的实例.Hibernate将根据用于继承映射的继承策略决定实例化哪一个:
| 归档时间: |
|
| 查看次数: |
3327 次 |
| 最近记录: |