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;
}
我遇到 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;
}