我正在尝试使用带有hibernate的拦截器来创建日志表。 该应用程序工作正常但我的拦截器在它们应该被触发时从不被触发 我尝试了this post关于堆栈溢出的解决方案,但我没有成功地使其工作。
我做的是:
UserLog
)UserLogUtil
我尝试了第一个解决方案,让我的拦截器类不依赖于spring @Autowire
,方法是将UserLogUtil
设为单例并将以下行添加到 application.properties :spring.jpa.properties.hibernate.ejb.interceptor=LogInterceptor
。
我也通过自动装配UserLogUtil
尝试了第二个解决方案但是我的弹簧配置是xml,虽然我试图转换上面例子中的bean,但它没有用。
这就是我的拦截器的样子:
public class LogInterceptor extends EmptyInterceptor {
private UserLogUtil userLogUtil = UserLogUtil.getInstance();
public boolean onSave(Object entity,Serializable id, Object[] state,String[] propertyNames,Type[] types)
throws CallbackException {
if (entity instanceof Owner){
userLogUtil.log(........));
}
return false;
}
我认为在构建拦截器的过程中我遗漏了一些东西,我的设计可能存在缺陷。你有什么想法可以让我的拦截器功能正常吗?