例如我们有这样的结构:
@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)
答案 0 :(得分:1)
您可以保存任何实体。继承唯一要记住的是你在ROOT表中设置策略,不能在子类中覆盖它。
请注意,您也应该在根类型上设置DiscriminatorValue
(如果保存该类型的实例)