带spring的Hibernate拦截器不拦截
我正在尝试将拦截器与hibernate结合使用,以便创建一个日志表。 应用程序工作正常,但我的拦截器在本应被触发时从未被触发。带spring的Hibernate拦截器不拦截,spring,hibernate,spring-data,interceptor,Spring,Hibernate,Spring Data,Interceptor,我正在尝试将拦截器与hibernate结合使用,以便创建一个日志表。 应用程序工作正常,但我的拦截器在本应被触发时从未被触发。 我尝试了堆栈上溢出的解决方案,但没有成功地使其工作 我所做的是: 创建一个实体类,该实体类将作为存储日志的表(UserLog) 创建另一个由拦截器调用的类,该类将填充我的表(dao),在本例中称为UserLogUtil 我尝试了第一种解决方案,通过手动将UserLogUtil设置为单例,并将以下行添加到我的应用程序中。properties:spring.jpa.pr
我尝试了堆栈上溢出的解决方案,但没有成功地使其工作 我所做的是:
- 创建一个实体类,该实体类将作为存储日志的表(
)UserLog
- 创建另一个由拦截器调用的类,该类将填充我的表(dao),在本例中称为
UserLogUtil
我尝试了第一种解决方案,通过手动将
UserLogUtil
设置为单例,并将以下行添加到我的应用程序中。properties:spring.jpa.properties.hibernate.ejb.interceptor=LogInterceptor
,使我的拦截器类不依赖于spring@Autowire
我还通过自动连接UserLogUtil
尝试了第二种解决方案,但是我的spring配置是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;
}
我想我在建造拦截器的过程中遗漏了一些东西,我的设计可能有缺陷。你有什么想法可以让我的拦截器正常工作吗?“spring.jpa.properties.hibernate.ejb.interceptor=LogInterceptor”所以你的LogInterceptor在默认包中?或者您在这里使用的是LoginRecepter的完整限定名,对吗?@Jenschauder我在这里使用的是完整限定名:
spring.jpa.properties.hibernate.ejb.interceptor=com.mypackage.LoginReceptor