2013-02-18 66 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