2013-02-18 45 views
0

我有一个测试用例,有三个表/类(语言,标题和CaptionLanguage)。JPA 2映射继承类型JOINED或SINGLE?

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

MER

哪种类型的继承我可以用它来解决这个问题?

如果我设置了 “@DiscriminatorColumn(NAME =” ID_LANG “discriminatorType = DiscriminatorType.Integer)”,
与 “@Inheritance(策略= InheritanceType.JOINED)”,将工作?
不使用@DiscriminatorValue(value =“Value”)

谢谢!

+0

你定义了哪些实体,你试图定义?他们之间定义了哪些关系?我不认为我可以很好地回答你,因为我认为我没有看到任何继承是你的模型中的“是 - ”关系,而是“具有” - 一种“聚合类型的关系”。也许你可以澄清? – Charlie 2013-02-18 19:41:40

回答

1

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

相反,它看起来像三个实体与以下特性:

  • 一个一对多从LanguageCaptionLanguage(和/或许多到一个逆)
  • 一到许多从CaptionCaptionLanguage(和/或可能多到一个逆)
  • 多到一个从Caption到父Caption(和/或一个对多逆)
  • CaptionLanguage确实有ç omposite主键,所以应该使用@IdClassor @EmbeddedId