Java 在多对一关系中如何删除子对象
多对一: 删除子对象时,还应删除多对一关系中的父对象。在父对象和子对象中保存单个对象时,它工作正常。但是,如果我向一个父类添加多个子对象(2个或多个),那么如何从一个父类的子对象列表中删除该子对象 儿童POJO:Java 在多对一关系中如何删除子对象,java,jpa,many-to-one,Java,Jpa,Many To One,多对一: 删除子对象时,还应删除多对一关系中的父对象。在父对象和子对象中保存单个对象时,它工作正常。但是,如果我向一个父类添加多个子对象(2个或多个),那么如何从一个父类的子对象列表中删除该子对象 儿童POJO: @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private int id; @Column(name="cName") private String cName
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="cName")
private String cName;
@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="pId")
private Parent parent
父POJO:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="pName")
private String pName;
@Column(name="address")
private String address;
您将获得父对象中存在的子对象集合的迭代器。然后使用迭代器迭代到要删除的特定子对象,并删除子对象并更新父对象 如何将父对象映射到子对象。目前,您刚刚将您的子项映射到父项。但您的父对象未映射到子对象。有两种选择
设置子对象;
您将在下面的链接中找到问题的正确答案。同样的问题@kostja也解释得很好
在多对一关系中,关系从子对象应用到父对象,这就是我这样映射的原因。当从表中删除单个子对象时,它将通过异常进行处理。该异常类似于无法删除父类对象。谢谢,因为您的映射已断开。要删除子对象,您必须首先取消父对象的链接。将子对象中的父对象设置为null。更新孩子,然后删除我的答案,这一页将帮助你。
Set<ChildPojo> children;