我希望能够将父对象及其子对象持久化。子对象具有包含对父对象的外键的复合主键。
目前的映射是单向的一对多关系,父对象拥有该关系。
以下是我的模型:
父对象:
@Entity
@Table(name = "PARENT")
public class ParentEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "PARENT_ID")
private Set<Child> children;
...
孩子:
@Entity
@IdClass(ChildPK.class)
@Table(name = "CHILD")
public class Child {
@Id
@Column(name = "PARENT_ID")
private Long parentId;
@Id
private String source;
@Id
private Long alternativeId;
...
PK:
class ChildPK implements Serializable {
private Long parentId;
private String source;
private Long alternativeId;
...
目前我的问题是Hibernate不能处理在Child中填充parentId,我认为这只是我希望它能够做到的,而且我在child上遇到了约束冲突。我正在寻找如何实现构建包含其子元素的父对象并一次性保存所有内容的方法。
感谢您的帮助,