那配置了spring声明式事务后,在方法中应该用什么方式操作数据,还能不能用类似session.save(a);这样来操作,还是说只能用this.getHibernateTemplate()来操作

解决方案 »

  1.   

    一方面使用this.getHibernateTemplate()另一方面 spring也有操作jdbc的模板session.save(a);
    这样当然可以用,重新声明session即可
      

  2.   

    你写的dao的实现类 继承HibernateDaoSupport 以后
    比如你要保存一个对象的话
    直接getHibernateTemplate().save(a) 即可
    同样 删除 getHibernateTemplate().delte(a)
      

  3.   

    感觉用session.save(a);还是用getHibernateTemplate().save(a);跟配不配spring声明式事物没有直接关系,只不过当你的Dao从HibernateDaoSupport继承后直接用getHibernateTemplate().save(a);就不再需要手动关闭session(HibernateDaoSupport里面其实也封装了Session),也不用担心做数据库操作的时候用的是不是同一个session,可能也还有别的吧……总之就是为了方便,但是好像getHibernateTemplate()这种方式支持select count(*)这种查询,所以遇到这种情况还是要用Session吧