【问题标题】:how to make RepositoryEventHandler working in spring boot如何使 RepositoryEventHandler 在 Spring Boot 中工作
【发布时间】:2018-11-28 23:59:18
【问题描述】:
@Component
@RepositoryEventHandler({Person.class})
public class RepositoryListener  {
@HandleBeforeDelete
public void handleEventBeforeDelete(Person person){
    java.lang.System.out.println("handleAuthorBeforeCreate");
}
@HandleAfterDelete
public void handleEventAfterDelete(Person person){
    java.lang.System.out.println("handleAuthorAfterCreate");
}
@HandleBeforeSave
public void handleEventBeforeSave(Event event){
    java.lang.System.out.println("handleAuthorBeforeSave");
}
@HandleAfterSave
public void handleEventAfterSave(Perrson person){
    java.lang.System.out.println("yulin-11 handleAuthorAfterSave");
}
@HandleBeforeCreate
public void handEventBeforeCreate(Person person){
    java.lang.System.out.println("handEventBeforeCreate");
}
@HandleAfterCreate
public void handleEventAfterCreate(Person person){
    java.lang.System.out.println("handleEventAfterCreate");
}
}

我如上所述创建 RepositoryListener。当我在控制器中触发删除和发布休息调用时,它不会调用 RepositoryListener 中的任何这些方法。 (人是我的域类)。有谁知道我错过了什么?谢谢!

【问题讨论】:

  • 问:您的“存储库”是什么?例如,Oracle 11g RDBMS?问:你是如何“触发删除”的?数据库中的存储过程?问:您使用的是什么版本的 Spring Boot?你是如何运行你的应用程序的?在日食中?雄猫?在生产服务器上?
  • 我正在使用 intellij maven。这是我的 Person Repository 类:public interface PersonRepository extends JpaRepository {}。我正在使用 springboot 2.0.5.release。
  • 问:那么你如何“触发删除”?什么样的动作/事件序列导致“删除”到“触发”?用户是否单击网页上的某些内容?在调用 Spring Boot 之前是否涉及数据库?究竟是什么导致了您的控制器似乎没有得到这个“事件”?
  • 它是一个 REST。我正在使用邮递员 localhost:8080/person/id,选择删除选项来触发控制器。
  • 知道了。所以问题与数据库无关:您正在使用 Postman 来调用您的 Spring Boot API。建议:1)Enable verbose trace logging,2)Use your IntelliJ debugger

标签: spring-boot spring-data-jpa repository


【解决方案1】:

检查下面的评论很可能是答案,我自己没有尝试过

在对暴露的 Data-REST 完成的 HTTP 请求上调用它 存储库,但不是在您使用任何存储库方法时 以编程方式

链接提到here

【讨论】:

    猜你喜欢
    • 2015-12-24
    • 2021-05-21
    • 2018-10-03
    • 1970-01-01
    • 2018-03-29
    • 2020-03-04
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多