【发布时间】: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