、ParentOneはスキーマS2をしてChildTableとともにスキーマS1とParentTwoであり、は春データJPA 2つの異なるスキーマ間の親子関係を持つテーブルを永続私がやろうとしています
ChildTable child = new ChildTable();
clild.setParentTwoID(prentTwoID);
ParentOne parentOne = new ParentOne();
parentOne.getChildTableList().add(childTable);
parentReposetory.save(parentOne);
。
ParentOne.javaが
@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = "ParentOne", schema = "S1")
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, scope = ParentOne.class)
public class ParentOne implements Serializable {
private static final long serialVersionUID = 7502273069461829133L;
@Id
@Column(name = "ParentOneID", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer parentOneID;
@OneToMany(targetEntity = ChildTable.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "ParentOneID", nullable = false, insertable = false, updatable = false)
private List<ChildTable> childTableList;
}
ParentTwo.java
@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = "ParentTwo", schema = "S2")
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, scope = ParentTwo.class)
public class ParentTwo implements Serializable {
private static final long serialVersionUID = 7502273069461829133L;
@Id
@Column(name = "ParentTwoID", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer parentTwoID;
@OneToMany(targetEntity = ChildTable.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "ParentTwoID", nullable = false, insertable = false, updatable = false)
private List<ChildTable> childTableList;
}
ChildTable.java
@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = "ChildTable", schema = "S2")
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, scope = ChildTable.class)
public class ChildTable implements Serializable {
private static final long serialVersionUID = -6331600489988183852L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ChildTableID", unique = true, nullable = false)
private Integer childTableID;
@Column(name = "ParentOneID")
private Integer parentOneID;
@Column(name = "ParentTwoID", nullable = false)
@NotNull(message = "mandatory_field")
private Integer parentTwoID;
}
ここParentTwoは、Alであります準備ができて、私はそれのIDを持っています。私は別のスキーマのChildTableと共にParentOneだけを永続化しようとしています。私がこれをしている間、私は間違いを言っている。
エラーは、列が 'ChildTable.ParentOneID'がそれに' NOT NULL'制約があり、 'INSERT'は'ヌルで発行されていることをことを言います'その列の値。コード内のその列の値をどこにでも設定していないため、エラーが予想されます。何が問題なのですか? – manish
@manish JPAはparentOneIDを作成するParentOneテーブルを挿入し、次に生成されたparentOneIDとともにChildTableを挿入します。しかし、ここで私はそれが起こっていない。 –