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
和赋值。。。虽然我确信我曾经尝试过这两种方法,但我可能错过了在试验过程中解决的另一个问题。