级联删除后未调用存储库事件处理程序

时间:2018-12-18 16:04:49

标签: hibernate spring-boot event-handling spring-data-jpa spring-data

我有两个班。第一个是Advertisement,第二个是Image。 Advertisement类包含图像列表。该列表带有以下注释:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)

当从数据库中删除图像时,我将不执行某些操作(从服务器中删除图像)。我不调用图像存储库来删除通过级联删除广告时删除的图像。我创建一个存储库事件处理程序:

@RepositoryEventHandler(Image.class)
public class ImageEventHandler {

@Autowired
ImageStorageService imageStorageService;

@HandleAfterDelete
public void handleImageAfterDelete(Image image){
    String imageName = image.getName();
    System.out.println("**********************************");
    imageStorageService.deleteFile(imageName);
}
}

删除图像时根本不调用我的事件处理程序。

关于可能是什么问题的任何想法。

1 个答案:

答案 0 :(得分:0)

过去我也遇到过EventHandler的问题。我的错误是,没有创建相应的bean,如下所述:https://www.baeldung.com/spring-events

也许这也是您的问题。

马蒂亚斯问候