让我们说我有一个Parent对象,其中有多个cascadeType = CascadeType.REMOVE, orphanRemoval = true
的孩子。是否可以收集删除父级时删除的所有内容?
如果我记录所有SQL查询,则可以看到已执行多次删除。但是我不知道如何找回所有ID。
答案 0 :(得分:2)
您可以使用@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.
}
}