首页 > 解决方案 > 如何拦截 Spring Data JPA 存储库?

问题描述

我正在使用Spring Data JPA,我必须拦截所有实体事件。
不幸的是,我不能使用像@PreUpdate,之类的实体监听器@PostLoad
所以我正在尝试编写AOP。
一切都很好,但拦截update是个问题。
如您所知,JPA中没有update方法。

所以我在探索hibernate代码,我发现在库中PointCut命名非常好。 所以我这样做了: CallbackRegistryhibernate

@Pointcut("execution(public * org.hibernate.jpa.event.spi.jpa.CallbackRegistry+.pre*(..))")
public void callback() { }

但如您所知,在 Spring AOP 中,它不起作用。
因为CallbackRegistry不是Spring bean
所以我正在尝试AspectJ,但我不知道我该怎么做。

这是正确的方法吗?而且..如果我是对的,你能告诉我我该怎么做吗?

标签: springjpaspring-data-jpaaopaspectj

解决方案


推荐阅读