【发布时间】:2021-12-01 09:17:17
【问题描述】:
简单的例子(希望如此)。我在一个表中有一个主键(使用序列),该值是子表的部分 FK。我看到 Parent 正在尝试使用生成的序列进行保存,但随后我看到一个异常,即在保存孩子时嵌入的 parentId 为 null。用于父级的序列值不会传递给子级。我尝试了许多注释和 mappedBy/join 列名,但没有运气。
任何指针将不胜感激。
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "audit_seq")
@SequenceGenerator(name = "audit_seq", allocationSize = 5)
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parent")
private List<Child> childList = new ArrayList<>();
//Used to add child record o the parent
public void addChild(Child child) {
this.childList .add(child);
child.setParent(this);
}
}
@Embeddable
public class ChildId {
private Long parentId;
private String name;
}
public class Child {
@EmbeddedId
private ChildId id;
private String myCol;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "parentId", insertable = false, updatable = false)
private Parent parent;
}
【问题讨论】: