未与带注释的JPA实体调用拦截器

时间:2019-07-16 12:16:04

标签: java java-ee ejb

拦截器注释定义:

@InterceptorBinding
@Target({METHOD, TYPE})
@Retention(RUNTIME)
public @interface EntityChange {
}    

拦截器定义:

@Interceptor
@Priority(1)
@EntityChange
public class DataChangeInterceptor implements Serializable {      

 @AroundInvoke
    public Object method(InvocationContext ctx) throws Exception {...

在实体内使用注释:

@Entity
public class entity implements Serializable {

...
    @EntityChange
    public void setId(String id) {
        this.id = id;
    }
...

setId方法应触发AOP方法。但事实并非如此。万一我从Bean注释方法,它就会被触发。

在我看来,原因是实体不在EJB上下文内(它不是EJB bean)。问题是,如何使该方法以正确的方式触发拦截器。 (恕我直言,从实体EJB bean制作是不正确的)

0 个答案:

没有答案