gpt4 book ai didi

java - Hibernate 继承 JOINED + TABLE PER CLASS

转载 作者:行者123 更新时间:2023-12-01 13:12:12 25 4
gpt4 key购买 nike

我有一个奇怪的层次结构:

  • A是抽象的(但它是一个实体)
  • B 类(抽象)和 C 都扩展了 A 类 (TABLE_PER_CLASS)。
  • B 也由类 DE 扩展,但这次它是 JOINED。

我希望 A 类的 ID 成为所有其他类的 ID

这可以做到吗?

我收到奇怪的 ID 错误。谁能告诉我如何绘制 map ?

我就是这样做的:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class A {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
protected Integer id;
}

C类:

@Entity
@Table(name = "managers")
public class C extends A {

B类:

@Entity
@Table(name = "bb")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING)
public abstract class B extends A {

C、D类:

@Entity
@Table(name = "cc"/"dd")
@DiscriminatorValue("CC"/"DD")
public class C (or D) extends B {

最佳答案

虽然在继承树中混合继承策略可以完成(https://stackoverflow.com/a/3916998/131929Java Persistence with Hibernate-> 5.1.5 混合继承策略 (p207-p210)) 我和我认识的其他人都建议不要这样做。

旁注,我建议您始终使用 @MappedSuperclass 而不是 @Entity 作为抽象类。

关于java - Hibernate 继承 JOINED + TABLE PER CLASS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760554/

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