Java JPA中的Id继承
我有以下计划Java JPA中的Id继承,java,inheritance,jpa,Java,Inheritance,Jpa,我有以下计划 @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; } @实体 公共A类 { @身份证 字符串字段1 字符串字段
@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;
}
@实体
公共A类
{
@身份证
字符串字段1
字符串字段2
}
公共类B扩展了A
{
字符串字段3;
@OneToMany(MappedBy=“b”)
列表cList;
}
公共类C扩展了
{
字符串字段4;
@许多酮
B B;
}
类B和C都扩展了A,并根据具体的类策略从使用表中获取它们的id,但问题是类B与类C有一对多的关系,所以我想要将类C的id更改为一个复合键,由继承的id字段1和对象B的id组成。这将允许b的两个不同对象具有相同field1值的两个不同c对象。
是我认为可能的(覆盖继承)我使用eclipse链接作为持久性提供者。不幸的是,JPA继承策略不支持在实体层次结构中使用不同的Id类型,因为它引入了歧义 有关详细信息,请参阅 要解决此限制,您可以:
- 从层次结构中“分离”
,使其不会从C
A
- 将
用作其他实体中的属性C