我在Spring中使用HibernateDaoSupport进行Spring-Hibernate集成。我需要拦截所有getCurrentSession调用并启用过滤器并设置过滤器参数值。
Hibernate支持CurrentSessionContext impls来拦截getCurrentSession调用。 Spring提供了一个名为SpringSessionContext的实现。但是当使用HibernateDaoSupport时,Spring拥有自己的SessionHolder机制,并且getCurrentSession()永远不会被调用,并且拦截永远不会有效。有解决方法吗?
答案 0 :(得分:1)
听起来你宁愿基于简单的Hibernate 3 API实现你的Spring DAO:
http://static.springframework.org/spring/docs/2.5.x/reference/orm.html#orm-hibernate-straight
答案 1 :(得分:1)
如果您使用的是AnnotationSessionFactoryBean或LocalSessionFactoryBean 那么你还需要设置这个属性:
<property name="exposeTransactionAwareSessionFactory" value="false" />
默认为true,如果为true,则忽略hibernate.current_session_context_class属性。