多对一:
删除子对象时,它还会删除多对一关系中的父对象。在父母和孩子中保存单个对象时,它工作正常。但是,如果我向一个父类添加多个子对象(2个或更多),那么如何从一个父类的子对象列表中删除子对象?
儿童POJO:
@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;
答案 0 :(得分:1)
您可以在下面的链接中找到问题的正确答案。还有同样的问题@kostja解释得非常好。
答案 1 :(得分:0)
您将获得Parent中存在的子集的Collections对象的Iterator。然后使用迭代器迭代到您要删除的特定子项,并删除子项并更新父对象。
如何将父级映射到子级。目前,您刚刚将孩子映射到父级。但是您的父级未映射到子级。有两个选项
您可以更正父映射并在父级中添加一组子级列表。
Set<ChildPojo> children;
或者,如果您的逻辑真的需要这样一个破碎的映射,那么您必须首先找到所有具有相同父级的子项,然后删除您要删除的子项。