【问题标题】:JPA Extending Entity class - Parent key not foundJPA 扩展实体类 - 未找到父键
【发布时间】:2016-03-18 08:38:25
【问题描述】:

我遇到了 JPA 映射问题。我仍然得到“ORA-02291:违反完整性约束-找不到父键”。我的问题取决于我从 jar 文件中包含类 A 和 B 的事实,我无法更改它,只能覆盖。

我的映射如下:

-- 第一个表:

@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;
}

-- 第二类,第二张桌子:

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

还有我的班级有问题。我想在 B 类/表中添加新字段。

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

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

【问题讨论】:

    标签: java oracle jpa mapping


    【解决方案1】:

    您想向现有表中添加一个字段,但您使用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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 2021-03-30
      相关资源
      最近更新 更多