this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession().OpenSession区别
2014-08-22 15:16
141 查看
这个是hibernate与spring整合开发,让DAO继承了spring的HibernateDaoSupport,这样的确能够提高开发效率 ,但是不够灵活,而且使DAO层依赖于spring的api,增加了耦合。但是不考虑复用的话还可以。
下面一个一个的分析: this.getsession实际上是调用了父类中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session.这样做有可能有问题,就是超session池连接数的时候,spring无法自动的关闭session。 不推荐使用
this.getHibernateTemplate().getSessionFactory().getCurrentSession()从spring管理的sessionFactory中创建一个绑定线程的session.spring会根据该线程的执行情况来自动判断是关闭session还是延迟关闭。这样做可以避免手动的管理实务,同时一个线程最多开启和关闭一次session又可以提高程序的性能。 极力推荐使用这种方法
this.getHibernateTemplate().getSessionFactory().OpenSession。这种方法从spring管理的sessionFactory中创建一个session,此session不是线程绑定的。当执行完一个实务的时候自动关闭session.这种方法不用手动管理实务,但是同一个线程多次的开启和关闭session,浪费系统资源和影响执行效率,正常情况下还是不要用了。
下面一个一个的分析: this.getsession实际上是调用了父类中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session.这样做有可能有问题,就是超session池连接数的时候,spring无法自动的关闭session。 不推荐使用
this.getHibernateTemplate().getSessionFactory().getCurrentSession()从spring管理的sessionFactory中创建一个绑定线程的session.spring会根据该线程的执行情况来自动判断是关闭session还是延迟关闭。这样做可以避免手动的管理实务,同时一个线程最多开启和关闭一次session又可以提高程序的性能。 极力推荐使用这种方法
this.getHibernateTemplate().getSessionFactory().OpenSession。这种方法从spring管理的sessionFactory中创建一个session,此session不是线程绑定的。当执行完一个实务的时候自动关闭session.这种方法不用手动管理实务,但是同一个线程多次的开启和关闭session,浪费系统资源和影响执行效率,正常情况下还是不要用了。
相关文章推荐
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession()/OpenSession区别
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession()/OpenSession区别
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession()/OpenSession区别
- getHibernateTemplate和getSession 区别, this.getHibernateTemplate().getSessionFactory().getCurrentSession()和OpenSession区别
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession()/OpenSession区别
- 解决hibernate产生的id序列或者setXX不能同步到数据库到问题(this.hibernateTemplate.flush();hibernateTemplate.getSessionFactory().getCurrentSession().connection().commit())
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession()/OpenSession区别 .
- etHibernateTemplate().getSessionFactory().getCurrentSession()事务中的session
- hibernateTemplate.getSessionFactory().getCurrentSession()
- hibernate--coreapi--configuration sessionfactory--getcurrentsession--opensession
- 【已解决】NoSuchMethodError: org.hibernate.SessionFactory.getCurrentSession()...
- Hibernate整合进spring--使用hibernateTemplate.getSessionFactory().getCurrentSession()理解
- Hibernate SessionFactory openSession vs getCurrentSession vs openStatelessSession
- hibernate的openSessionFactory和getCurrentSession
- getSession - getHibernateTemplate - getSessionFactory
- 自己学习Hibernate时的一个低级错误:sessionFactory.getCurrentSession()空指针异常
- Spring3与hibernate4整合,sessionFactory.getCurrentSession()方法获取不到Session对象异常解决办法
- Hibernate SessionFactory getCurrentSession is not valid without active transaction
- Hibernate--Session session = sessionFactory.getCurrentSession()空指针异常
- hibernate调用sessionFactory.getCurrentSession().save(entity);数据无法插入到数据库