Java 即使使用OrphanRemoving=true,也无法从Hibernate中的集合中删除子项

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

我有一个问题,即使我从@OneToMany关系集中删除一个元素,它也会保留在数据库中。我尝试了Cascade.ALL、orphanRemoving=true等,但仍然找不到问题

我做错了什么

@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是用户在客户端填充的对象。这和父母差不多@阿里斯。