gpt4 book ai didi

java - 是否可以使用 InheritanceType.SINGLE_TABLE 保存顶级实体?

转载 作者:行者123 更新时间:2023-11-30 08:05:38 27 4
gpt4 key购买 nike

例如我们有这样的结构:

@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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com