JPA 休眠差异映射超类和实体抽象类

JPA 休眠差异映射超类和实体抽象类,第1张

JPA /休眠差异映射超类和实体抽象类

MappedSuper类将继承用于字段和代码的重用。例如,如果您希望所有实体都具有

Long id
Longversion
字段,则可以使它们全部扩展一个包含这两个字段以及它们的getter,setter等
baseEntity
注释的类
MappedSuperclass
。但是,您永远不会拥有一个具有关联的实体与baseEntity:关联将始终与baseEntity的特定子类关联。

父实体用于“实体多态性”。例如,您可以想象有两种

Message
:an
EmailMessage
和a
SmsMessage
。两者都将包含源,目标和主体。但是,EmailMessage将具有电子邮件地址和主题,而SmsMessage将具有电话号码。

您可以想象有一个

Person
实体,其中包含已发送消息的集合,类型为
Message
。该集合实际上将包含EmailMessage和SmsMessage的实例。Hibernate将根据用于继承映射的继承策略来决定实例化哪个实例:

  • 所有消息都可以存储在同一表中,并且Hibernate将使用一个包含消息类型的区分列
  • EmailMessage可以存储在一个表中,而SmsMessage可以存储在另一个表中
  • 或两个实体(源,目标,主体)共有的字段都可以存储在公用表中,第二个表中的EmailMessage特定字段,第三个表中的SmsMessage特定字段。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5169042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存