首页 > 解决方案 > ORA - 01400:无法插入到具有复合键的空(一对多双向)JPA

问题描述

当我尝试保存子表时,触发的插入查询不包含外键字段。JPA 触发的插入查询不包含外键列。以下是模型及其组合键类:

@Embeddable
public class EwpPk implements Serializable {

private static final long serialVersionUID = -3231628074628968344L;

@Column(name = "ewp_sid", nullable = false)
private Long sid

@Column(name = "PRTN_KEY", nullable = false)
private Date partitionDate;

@Column(name = "SUB_PRTN_SEQ_NUM", nullable = false)
private int sequenceNumber;

}

@Table(name = "EWP")
public class Ewp implements Serializable {

private static final long serialVersionUID = 7232535288636665348L;

@EmbeddedId
private EwpPk modelid;

@ManyToOne(targetEntity = Eap)
@MapsId("e_modelid")
@joinColumns({
  @JoinColumn(name="eap_sid", nullable=false),
  @JoinColumn(name="PRTN_KEY", nullable=false),
  @JoinColumn(name="SUB_PRTN_SEQ_NUM", nullable=false)
})
private Eap eap;

public class EnrolledAccountRangePartitionedModel implements Serializable {

private static final long serialVersionUID = 700193113967839613L;

@EmbeddedId
private EapPk e_modelid;

@OneToMany(targetEntity = Ewp.class, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER, mappedBy = "eap")
private list<Ewp> ewpList;

}

@Embeddable
public class EapPk implements Serializable {

private static final long serialVersionUID = -4696018718017450273L;

@Column(name = "Eap_sid", nullable = false)
private Long eapsid;

@Column(name = "PRTN_KEY", nullable = false)
private Date partitionDate;

@Column(name = "SUB_PRTN_SEQ_NUM", nullable = false)
private int sequenceNumber;

我收到此错误 ORA - 01400 : Cannot Insert into null

标签: javaoraclehibernatejpaorm

解决方案


推荐阅读