我有以下方案
@Entity
public class A
{
@Id
String field1
String field2
}
public class B extends A
{
String field3;
@OneToMany(MappedBy="b")
List<C> cList;
}
public class C extends A
{
String field4;
@ManyToOne
B b;
}
B类和C类都扩展了A并使用每个具体的类策略从A获取它们的id但问题是类B与C类有一对多的关系所以我想要的是将类C的id更改为是一个复合键,由继承的id field1和对象b的id组成。这将允许b的两个不同对象具有具有相同field1值的c的两个不同对象。 我正在考虑的是什么(覆盖继承)我使用eclipse链接作为持久性提供程序。
答案 0 :(得分:2)
不幸的是,JPA继承策略不支持在实体层次结构中使用不同的Id类型,因为它引入了歧义。
有关详细信息,请参阅this question。
要解决这个限制,你可以:
C
,使其不是来自A
C
作为不同实体的属性