我有一个测试用例,有三个表/类(Language,Caption和CaptionLanguage)。
语言表存储语言数据
标题表存储标题索引数据
CaptionLanguage表存储每种语言的标题数据。
我可以使用哪种继承类型来解决问题?
如果我设置“@DiscriminatorColumn(name =”ID_LANG“,discriminatorType = DiscriminatorType.Integer)”,
使用“@Inheritance(strategy = InheritanceType.JOINED)”,会起作用吗?
不使用@DiscriminatorValue(value =“Value”)
谢谢!
答案 0 :(得分:1)
这看起来不像是可以通过继承来解决的问题。尽管名称,CaptionLanguage
不是Language
的子类型 - 它也不是Caption
的子类型。
相反,它看起来像三个具有以下特征的实体:
Language
到CaptionLanguage
的一对多(和/或多对一反转)Caption
到CaptionLanguage
的一对多(和/或可能是多对一的反向)Caption
到父Caption
的多对一(和/或一对多反向)CaptionLanguage
确实有复合主键,因此应使用@IdClass,or @EmbeddedId。