Java 是否在删除父项时获取所有已删除实体的ID?

Java 是否在删除父项时获取所有已删除实体的ID?,java,hibernate,jpa,Java,Hibernate,Jpa,假设我有一个父对象,它有几个子对象cascadeType=cascadeType.REMOVE,orphanRemoving=true。是否可以收集删除父项时删除的所有内容 如果我记录所有sql查询,我可以看到执行了多次删除。但我不知道如何取回所有ID。您可以使用@PreRemove,每当您尝试删除实体时,都会调用它 我将其用于审计目的,以跟踪删除的记录 @Entity public class Actor extends AbstractBusinessObject{ @ManyTo

假设我有一个父对象,它有几个子对象
cascadeType=cascadeType.REMOVE,orphanRemoving=true
。是否可以收集删除父项时删除的所有内容


如果我记录所有sql查询,我可以看到执行了多次删除。但我不知道如何取回所有ID。

您可以使用@PreRemove,每当您尝试删除实体时,都会调用它

我将其用于审计目的,以跟踪删除的记录

@Entity
public class Actor extends AbstractBusinessObject{

    @ManyToMany(mappedBy = "cast")
    private Set<Movie> movies;

    // setters and getters

    @PreRemove
    private void removeActorFromMovies() {
        //Executed before the entity manager remove operation is actually 
        // executed or cascaded. This call is synchronous with the remove operation.

    }

}
@实体
公共类参与者扩展了AbstractBusinessObject{
@许多(mappedBy=“cast”)
私人电影;
//二传手和接球手
@预移除
private void removeActorFromMovies(){
//在实际执行实体管理器删除操作之前执行
//已执行或级联。此调用与删除操作同步。
}
}

在以下行中使用一些内容:
列出实体=repository.findAll().stream().filter(e->e.getId().equals(parentId)).collect(Collectors.toList());删除所有(实体)
实体
将只是移除的实体。子实体中还有几个子实体。因此,首先找到它们并不是最好的解决方案(我认为)。如果您想收集所有已删除实体的ID,包括孙子,您可以尝试使用
@PreRemove
侦听器