JPA 扩展实体 class - 找不到父键

JPA Extending Entity class - Parent key not found

我遇到 JPA 映射问题。我仍然得到 "ORA-02291: integrity constraint violated-parent key not found"。我的问题取决于我从 jar 文件中包含 class A 和 B 的事实,我无法更改它,只能覆盖它。

我的映射如下:

-- 首先table:

@Entity
@Table(name = "A")
@SequenceGenerator(name = "SEQ_A", sequenceName = "SEQ_A")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "DOMAIN")
public abstract class A {
      @Id
      @Column(name = "A_ID")
      private Long id;
}

-- 第二个 class 和第二个 table:

@Entity
@Table(name = "B")
@DiscriminatorValue("C")
@PrimaryKeyJoinColumn(name = "B_A_ID")
public class B extends A {
    @Column(name = "B_FIELD")
    private String bField;
}

我的 class 有问题。我想向 B class/table.

添加新字段
@Entity
@Table(name = "B")
@DiscriminatorValue("X")
@PrimaryKeyJoinColumn(name = "B_A_ID")
public class BExt extends B {
     @Column(name = "B_MY_FIELD")
     private String newField;
}

对不起我的英语。你可以帮帮我吗? 谢谢

您想向现有 table 添加字段,但您使用 JOINED 继承。

您需要SINGLE_TABLE继承:

@Entity
@Table(name = "B")
@DiscriminatorValue("X")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)    
public class BExt extends B {
     @Column(name = "B_MY_FIELD")
     private String newField;
}