gpt4 book ai didi

java - 混合jpa继承策略-inheritanceType.JOINED与inheritanceType.SINGLE_TABLE

转载 作者:行者123 更新时间:2023-11-30 04:50:20 25 4
gpt4 key购买 nike

我的类结构如下所示...我在这里实现了两种单独的策略,但根类的继承策略(即 InheritanceType.JOINED)正在整个层次结构中使用...

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "typeName", discriminatorType = DiscriminatorType.STRING, length = 100)
@Table(name="table_A")
public abstract class A{
...
}


@Entity
@Table(name = "table_B")
@PrimaryKeyJoinColumn(name = "ID_B")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("SVC")
public abstract class B extends A {
...
}

@Entity
@DiscriminatorValue("C")
public class C extends B {
...
}

@Entity
@DiscriminatorValue("D")
public class D extends B {
...
}

当我创建“D”的实例并尝试保留它时,hibernate 正在寻找名为“D”的表...
我发现有几个人问同样的问题...但答案对我没有帮助...

mixing joined and single table inheritance and querying for all objects -同样的问题..
How to mix inheritance strategies with JPA annotations and Hibernate? - 将 single_table 与 join 混合在一起..这对我的情况没有帮助..

最佳答案

JPA 规范不允许您在继承树中混合策略;它要求您在根实体中设置继承策略。 JDO 是唯一允许混合策略的规范。您可能会找到允许这样做的 JPA 实现,但它是不可移植的

关于java - 混合jpa继承策略-inheritanceType.JOINED与inheritanceType.SINGLE_TABLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003155/

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