我在父实体和子实体之间存在多对一的双向关系。问题是,当我要坚持孩子时,parent_id
不能坚持。其他字段很好,但是parent_id
停留在NULL
。我正在将Spring Data JPA与Hibernate和mapstruct一起使用,以在实体和dto之间进行转换,如果可以的话。
java文件如下:
@Entity
@Table(name = "Parent")
public class ParentEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany (fetch = FetchType.LAZY, mappedBy="parent_entity", cascade = { CascadeType.ALL })
private List<Child> children;
}
@Entity
@Table(name = "Child")
public class ChildEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(optional = true)
@JoinColumn(nullable = true, name = "parent_entity_id", insertable = false, updatable = false)
private Parent parent_entity;
}
我已经尝试了一些SO的答案,但是暂时无济于事。
答案 0 :(得分:1)
由于您使用的是双向关系,因此您现在有责任为孩子设置父母。并删除insertable = false
。
答案 1 :(得分:0)
据我所知。您必须在父级和子级中都添加对方。仅将孩子添加到列表中似乎无效。
尝试一下,看看是否可以解决问题。