Java 即使使用OrphanRemoving=true,也无法从Hibernate中的集合中删除子项
我有一个问题,即使我从@OneToMany关系集中删除一个元素,它也会保留在数据库中。我尝试了Cascade.ALL、orphanRemoving=true等,但仍然找不到问题 我做错了什么Java 即使使用OrphanRemoving=true,也无法从Hibernate中的集合中删除子项,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个问题,即使我从@OneToMany关系集中删除一个元素,它也会保留在数据库中。我尝试了Cascade.ALL、orphanRemoving=true等,但仍然找不到问题 我做错了什么 @Entity @Table(name = "PARENT") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class Parent extends JpaBaseEntity { .... @O
@Entity
@Table(name = "PARENT")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Parent extends JpaBaseEntity {
....
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL }, mappedBy = "parent", orphanRemoval = true)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Child> children = new HashSet<>();
public Parent(ParentSO parentSO) {
.....
this.getChildren().clear();
this.getChildren().addAll(parentSO.getChildren(this));
.....
}
.....
}
@Entity
@Table(name = "CHILD")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Child extends JpaBaseEntity {
.....
@ManyToOne
@JoinColumn(name = "PARENT_ID", nullable = false)
private Parent parent;
.....
}
Parent parent = new Parent(parentSO);
subsDao.updateParent(parent);
@实体
@表(name=“PARENT”)
@缓存(用法=缓存并发策略。非严格读写)
公共类父级扩展了JpaBaseEntity{
....
@OneToMany(fetch=FetchType.LAZY,cascade={CascadeType.ALL},mappedBy=“parent”,orphanRemoving=true)
@缓存(用法=缓存并发策略。非严格读写)
private Set children=new HashSet();
公共家长(ParentSO ParentSO){
.....
这是.getChildren().clear();
this.getChildren().addAll(parentSO.getChildren(this));
.....
}
.....
}
@实体
@表(name=“CHILD”)
@缓存(用法=缓存并发策略。非严格读写)
公共类子对象扩展了JpaBaseEntity{
.....
@许多酮
@JoinColumn(name=“PARENT\u ID”,nullable=false)
私人家长;
.....
}
父级父级=新父级(parentSO);
subdao.updateParent(父级);
您是否有任何异常?不,我没有@SimonMartinelli什么是ParentSO
对象?您的delete方法调用在哪里?ParentSO是用户在客户端填充的对象。这和父母差不多@阿里斯。