spring的session和HibernateTemplate区别?

解决方案 »

  1.   

    getSession() 获得的是原始的sessionFactory,每次你必须自己维护session如结束后你必须关闭session。如果是hibernate中进行数据库操作,你获得是原始的hibernate style和excepttion。 而hibernate template是spring包装过的,它会帮你管理session,并且它会将hibernate exceptions转换成其他的分类后的错误。这点getSession是肯定不行了。例如你用orcle和mysql返回的错误在getSession中就是不一样的,而在hibernate template中就是一样的
      

  2.   


    是不是hibernateTemplate用的多些?
    哪个功能比较强大
      

  3.   

    应该是hibernateTemplete用的多些,如果你配置了spring的事务管理、
    使用sessionFactory.getCurrentSession()// 获取当前线程对应session(hibernate的api)
    和使用hibernateTemplete没有什么区别。这个就看个人喜好了吧