自动连接到hibernate拦截器
我正在扩展hibernate.EmptyInterceptor,在我的实现中,我希望自动连接到某些服务,但它们返回null。 我在类上添加了@Component注释。 我的代码:
和class级:
@SuppressWarnings("serial") @Component public class AuditInterceptor extends EmptyInterceptor { @Autowired private IUserSessionService userSessionService;
我知道这可能要晚了两年 – 但我正在寻找同样问题的答案,并认为这对未来的某些人有用。
看看Hibernate代码看起来如果给出类名,Hibernate将实例化拦截器的新实例,但是如果传入bean实例引用,它将使用它。
所以
…
现在bean myInterceptor是Spring管理的,自动assembly将工作!
Spring 永远不会将@Autowired
目标保留为null
(除非null
是您正在注入的)。 这应该告诉你,如果@Autowired
字段为null
,那么Spring与它无关。
这似乎就是这种情况。 通过提供类似的东西
我相信你告诉Hibernate创建该实例本身,因此它不会是一个Spring托管bean。
如果你发布剩余的bean定义,因为我不知道你想要注入什么bean,可能有其他选择。
- CrudRepository和Hibernate:在事务中保存(List
)vs save(Entity) - Hibernate多态查询
- 在Hibernate标准中区分大小写搜索
- 什么是与Hibernate和JDBC相关的对象/关系映射(ORM)?
- 如何从org.hibernate.collection.PersistentBag中删除数据? | Hibernate(Jpa)
- Spring 4.3.0.RELEASE + Hibernate 5.2.0.Final + JPA Repository
- hibernate 4.3.x – 加载所有实体注释类
- 无法在Spring Security中识别身份validation提供程序user-service-ref
- 具有LEAST和GREATESTfunction的JPA CriteriaQuery