@ManyToOne未填写父ID字段

时间:2018-10-05 13:39:14

标签: java spring-data-jpa one-to-many many-to-one

我在父实体和子实体之间存在多对一的双向关系。问题是,当我要坚持孩子时,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的答案,但是暂时无济于事。

2 个答案:

答案 0 :(得分:1)

由于您使用的是双向关系,因此您现在有责任为孩子设置父母。并删除insertable = false

答案 1 :(得分:0)

据我所知。您必须在父级和子级中都添加对方。仅将孩子添加到列表中似乎无效。

尝试一下,看看是否可以解决问题。