Java 用于类层次结构的JPA manytone
我有以下几点Java 用于类层次结构的JPA manytone,java,jpa,Java,Jpa,我有以下几点 @MappedSuperclass public abstract class A { @Id @GeneratedValue public Long id; } @Entity public class B extends A { } @Entity public class C extends A { } @Entity public class D { @ManyToOne public A a; } 问题是D类和字段a(可以是B或C类
@MappedSuperclass
public abstract class A {
@Id @GeneratedValue
public Long id;
}
@Entity
public class B extends A {
}
@Entity
public class C extends A {
}
@Entity
public class D {
@ManyToOne
public A a;
}
问题是D类和字段a(可以是B或C类型)。映射应该是什么 你所做的是正确的。它将是映射A。因此,在表D中;我们将有一个额外的列,它将告诉我们A是B还是C。在Toplink中,我们的列名为Type。即使在冬眠状态下,我们也有类似的概念。此列由ORM自动填充。如果引用另一个实体的
A
,则A
不应是MappedSuperclass,而应是实体。您应该使用@实体
对其进行注释,并选择一个
除此之外,映射将保持原样。这在JPA中无效,因为无法将关系定义为@MappedSuperclass
可以映射A和@实体(Table Pyl类继承会给你相同的数据模型,但也可以考虑加入或单列表,因为它们通常更有效)。 在EclipseLink中,您还可以使用@VariableOneToOne来处理这种类型的关系
看,,问题是什么?你有什么错误吗?