带弹簧的Hibernate拦截器不会拦截

时间:2017-01-06 16:09:16

标签: spring hibernate spring-data interceptor

我正在尝试使用带有hibernate的拦截器来创建日志表。 该应用程序工作正常但我的拦截器在它们应该被触发时从不被触发 我尝试了this post关于堆栈溢出的解决方案,但我没有成功地使其工作。

我做的是:

  • 创建一个实体类,该实体类将成为存储日志的表(UserLog
  • 创建另一个由拦截器调用的类,它将填充我的表(dao),在本例中它被称为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;
  }

我认为在构建拦截器的过程中我遗漏了一些东西,我的设计可能存在缺陷。你有什么想法可以让我的拦截器功能正常吗?

0 个答案:

没有答案