日期:2014-05-19  浏览次数:20578 次

Spring3.1+Hibernate4.1.4问题
配置一切正常,我采用的是用Spring的AOP 来直入事务
sessionFactory:hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
但当我
XML code
<bean id="sampleService" class="com.hzyl.sample.service.SampleService" init-method="init" />

init 方法会查询数据库,sessionFactory.getCurrentSession();
的时候就会出现异常:当前线程中没有找到session
但如果不在这调用init 方法,等程序启动完毕之后再调用init就没有问题
我测试了
sessionFactory:hibernate.current_session_context_class=thread
这样配置的话
调用init也是正常的,就证明init-method="init" 的时候 spring 还没有 绑定好session ,此时线程中的session 还是在hibernate中

求解


------解决方案--------------------
不知道楼主为什么不用spring的事务呢?也想AOP那样植入,统一由spring管理,那多方便吖。。。
------解决方案--------------------
我也碰到过类似情况,建议楼主在init方法中做一个session判断,如果session不为空的时候才做相应的处理
------解决方案--------------------
spring一般是接受到请求后才用代理的方式去生成事务代理类,加入事务,所以你好像调早了。