解决方案 »

  1.   

    HibernateTemplate类封装的方法并没有提交事务,事务还是需要配置spring来管理。对service层进行事务管理。
      

  2.   

    HibernateTemplate类封装的方法没提交事务吗?那这个封装是用来做什么的呢?现在项目中还经常使用到这个类的方法吗?
      

  3.   

    你学习的肯定是hibernate3吧,在新的版本中已经不推荐使用这个类了
    HibernateTemplate也不会给你自动提交事务的,你可以去看看其源码
      

  4.   

    上面的说的有点问题哈,脑袋晕了,主要是太晚了,这个问题打完了,我就去睡了,明天接着找工作吧!
     使用HibernateTemplate时,不显示的声明事务管理,照样能对数据库做CURD。 这是因为在没有声明事务时,HibernateTemplate是默认自动提交事务的。 因此如果在业务代码中,只涉及到一次数据库操作时默认自动事务提交已经足够,如果多次数据库操作则需要做事务声明。hibernateTemplate有点类似事务中的propagation
    的required. 当你在spring配置了事务的时候,hibernateTemplate就会用当前spring
    配置的事务,如果spring没有配置事务,然而hibernateTemplate又是必须要一个事务,
    则它会自己创建一个事务开始并提交!!
      

  5.   

    @zy353003874,哦...嗯嗯,我懂了,今天去找了源码看了下,就是像你说的一样!谢谢啦!还想请教一个问题,那现在hibernate4中如果不用HibernateTemplate这个类的话都用什么方法来实现呢?直接用注入sessionFactory吗?
      

  6.   

    HibernateTemplate是用来管理session的,用它你不用去手动管理session的开户和关闭