我正在使用Spring Data JPA
,并且必须拦截所有实体事件。
不幸的是,我无法使用@PreUpdate
,@PostLoad
之类的实体侦听器。
所以我想写AOP。
一切正常,但是拦截update
是个问题。
如您所知,JPA中没有update
方法。
因此,我正在探索hibernate
代码,并且在PointCut
库中找到了不错的CallbackRegistry
,名为hibernate
。
所以我确实这样:
@Pointcut("execution(public * org.hibernate.jpa.event.spi.jpa.CallbackRegistry+.pre*(..))")
public void callback() { }
但是您知道,在Spring AOP中,它不起作用。
因为CallbackRegistry
不是Spring bean
。
所以我正在尝试AspectJ
,但不知道该怎么办。
这是正确的方法吗?还有..如果我是对的,你能告诉我该怎么做吗?