例如我们有这样的结构:
@Entity
@Table(name = "A")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
public class A{
}
@Entity
@DiscriminatorValue(value = "B")
public class B{
}
在大多数教程中都提到,为了保存实体,我们应该保存 B 实体。
B b = new B();
b.setName("name");
entityManager.persist(b);
保存时是否可以使用Top实体类,而不是子类?像这样的事情:
A a = new A();
a.setName();
a.setType("B");
entityManager.persist(a)
最佳答案
您可以保存任何实体。对于继承,唯一要记住的是,您在 ROOT 表中设置策略,并且不能在子类中覆盖它。
请注意,您也应该在根类型上设置一个 DiscriminatorValue
(如果保存该类型的实例)
关于java - 是否可以使用 InheritanceType.SINGLE_TABLE 保存顶级实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31161914/