配置一切正常,我采用的是用Spring的AOP 来直入事务
sessionFactory:hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
但当我<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中求解

解决方案 »

  1.   

    不知道楼主为什么不用spring的事务呢?也想AOP那样植入,统一由spring管理,那多方便吖
      

  2.   

    我现在是用的spring的事务管理机制!
       一切也都正常!
     但当我 我 在  一个bean 中!  使用它的 init-method属性 去初始化一些东西的时候(访问数据库),就会抛出异常:当前线程中没有找到session,
      

  3.   

    我也碰到过类似情况,建议楼主在init方法中做一个session判断,如果session不为空的时候才做相应的处理
      

  4.   

    spring一般是接受到请求后才用代理的方式去生成事务代理类,加入事务,所以你好像调早了。
      

  5.   

    在H3好的时候是不会出现的!我知道貌似没有拿到session,那时候的session 还处于Hibernate的
    所以才出现,我采用的方式是 在web.xml去做一个监听,由监听来来处理,但感觉比较麻烦