当前位置:  开发笔记 > 编程语言 > 正文

添加Controller时SpringDataRest @RepositoryEventHandler未运行

如何解决《添加Controller时SpringDataRest@RepositoryEventHandler未运行》经验,为你挑选了1个好方法。

我有一个在存储库上运行完美的事件处理程序.然而,一旦我将控制器添加到混合中并直接调用存储库方法,似乎跳过了EventHandler.

有人遇到过这个"问题"吗?如果是这样,我该怎么做才能让事件处理程序再次开始运行?



1> Mathias Dpun..:

因此,您希望在使用自定义控制器时调用事件处理程序.我认为这种期望是错误的.当弹簧数据RepositoryEntityController处于控制状态时,就会调用事件处理程序.它不是JPA级别的实体事件侦听器.

你可以做的是手动调用事件处理程序.spring-data-rest RepositoryEventHandler是一个使用普通的spring应用程序事件.因此,您的控制器可以实现ApplicationEventPublisherAware并发布其中一个spring-data-rest应用程序事件.这些都是.的子类org.springframework.data.rest.core.event.RepositoryEvent

applicationEventPublisher.publishEvent(new AfterCreateEvent(myEntity));

有关详细信息,请参阅spring文档.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有