Java @多通未填充父id字段

Java @多通未填充父id字段,java,spring-data-jpa,one-to-many,many-to-one,Java,Spring Data Jpa,One To Many,Many To One,我在父实体和子实体之间有一种多对一的双向关系。问题是,当我持久化子对象时,parent\u id不会持久化。其他字段可以,但是parent\u id保持为NULL。我正在使用SpringDataJPA和Hibernate以及mapstruct在entity和dto之间进行转换,如果可以的话 java文件如下所示: @Entity @Table(name = "Parent") public class ParentEntity implements Serializable { @Id

我在父实体和子实体之间有一种多对一的双向关系。问题是,当我持久化子对象时,
parent\u id
不会持久化。其他字段可以,但是
parent\u id
保持为
NULL
。我正在使用SpringDataJPA和Hibernate以及mapstruct在entity和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;
}
@实体
@表(name=“Parent”)
公共类ParentEntity实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私有整数id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“parent_entity”,cascade={CascadeType.ALL})
私人名单儿童;
}
@实体
@表(name=“Child”)
公共类ChildEntity实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私有整数id;
@多通(可选=真)
@JoinColumn(nullable=true,name=“parent\u entity\u id”,insertable=false,updateable=false)
私人母公司;
}

我已经试过这么多答案了,但现在没有用。

据我所知。您必须在父级和子级中相互添加。仅将子项添加到列表中似乎不起作用


尝试一下,看看这是否能解决问题。

由于您使用的是双向关系,您现在有责任为您的孩子设置一个家长。并删除
insertable=false

谢谢!就这样。
insertable=false
和赋值。。。虽然我确信我曾经尝试过这两种方法,但我可能错过了在试验过程中解决的另一个问题。