JPA 2映射继承类型JOINED还是SINGLE?

时间:2013-02-18 17:49:36

标签: inheritance annotations jpa-2.0 discriminator

我有一个测试用例,有三个表/类(Language,Caption和CaptionLanguage)。

语言表存储语言数据 标题表存储标题索引数据 CaptionLanguage表存储每种语言的标题数据。

MER

我可以使用哪种继承类型来解决问题?

如果我设置“@DiscriminatorColumn(name =”ID_LANG“,discriminatorType = DiscriminatorType.Integer)”,
使用“@Inheritance(strategy = InheritanceType.JOINED)”,会起作用吗? 不使用@DiscriminatorValue(value =“Value”)

谢谢!

1 个答案:

答案 0 :(得分:1)

这看起来不像是可以通过继承来解决的问题。尽管名称,CaptionLanguage不是Language的子类型 - 它也不是Caption的子类型。

相反,它看起来像三个具有以下特征的实体:

  • LanguageCaptionLanguage的一对多(和/或多对一反转)
  • CaptionCaptionLanguage的一对多(和/或可能是多对一的反向)
  • Caption到父Caption的多对一(和/或一对多反向)
  • CaptionLanguage确实有复合主键,因此应使用@IdClassor @EmbeddedId