2 qq 29310085 qq_29310085 于 2016.02.14 14:35 提问

HibernateDaoSupport 中getSession问题

getsession.saveorupdate()方法 不用事务的情况下,跟踪 那个getSession 每次都是打开一个新的session, 这个session在什么时候关闭呢?谁来控制呢?

2个回答

devmiao
devmiao   Ds   Rxr 2016.02.15 07:10
meng20166
meng20166   Rxr 2016.02.15 09:27

session就是会话,在数据库中每执行一次增删改查操作就与数据库执行一次交互,会话总是在数据交互前开启,交互后关闭(注意:实现增删改还要牵扯到事务,当执行增删改操作时,session会话总是在执行事务前开启,提交事务后关闭。)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用Spring的HibernateDaoSupport时的getSession()方法相关问题
在继承了HibernateDaoSupport的Dao中,  this.getsession实际上是调用了父类HibernateDaoSupport中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session。这样做有可能有问题,尽管这种方式拿到的Session会自动关闭,但是他是有一定的失效策略的
使用Spring的HibernateDaoSupport时的getSession()3个方法的区别
在继承了HibernateDaoSupport的Dao中,  this.getsession实际上是调用了父类HibernateDaoSupport中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session。这样做有可能有问题,尽管这种方式拿到的Session会自动关闭,但是他是有一定的失效策
<?>关于spring里HibernateDaoSupport的关于session的获取方法
我在一个事务里调用了两次getCurrentSession,就是this.getHibernateTemplate().getSessionFactory().getCurrentSession(),却打开了两个session,事务提交后只关闭了一个。如果我换成HibernateDaoSupport提供的方法操作却没有这个问题,只打开1个session提交后正常关闭。请问这是怎么回事? 我做了几
HibernateDaoSupport 类session未关闭导致的连接泄露问题
Spring+Hibernate做项目, 发现有member在不加事务的情况下就去调用 getSession() 方法, 结果导致数据库连接不能释放, 也无法正常的提交事务(只能做查询, 不能做save(), update()). 如果配合连接池使用的话, 不出几分钟就会导致连接池无法拿到新连接的情况.不过, 只要给DAO或者Service加入了事务, 就不会出现连接泄漏的问题.谈谈解决方案:最佳方案: 加入事务, 例如 tx 标签或者 @Transactional 都可以.最笨方案: 修改代码, 使用 H
Hibernate中Session的connection() 过期的替代方法
http://hi.baidu.com/jivam/item/7b8342639bd104167cdeccf7 以前查询SQL的时候,总是用createSQLQuery ,但是createSQLQuery有点问题 ,有些 native sql (正确的)通过这个方法,有时候Hibernate会关联对象报错,因此还是找JDBC的方式安全一些。 但是Hibernate 的 Hibern
由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
Spring和Hibernate的集成的一个要点就是对事务的支持,openSession、getCurrentSession都是编程式事务(手动设置事务的提交、回滚)中重要的对象,HibernateDaoSupport则提供了更方便的声明式事务支持。     openSession、getCurrentSession
HibernateDaoSupport的源码
         package org.springframework.orm.hibernate3.support;  import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory;  import org.springframework.da
继承HibernateDaoSupport后怎样获取session&&注入sessionFactory
今天刚刚写ssh2的框架在分页的时候遇到一个问题,百度了好多的分页,发现大多数都是说通过bean来保存,然后在获取出来。然而用这个bean来操作分页的时候还必需的在添加到层继承一个HibernateDaoSupport,我是初学ssh2框架的,不喜欢的可以让道,勿喷哦。 继承HibernateDaoSupport这个接口以后就不能再用你原来的方法来获取session 下面的这个是我在没有继承H
关于HibernateDaoSupport getSession()不能释放资源的问题及解决方法
关于HibernateDaoSupport getSession()不能释放资源的问题及解决方法   1、使用手动释放资源: Session session = getSession(); //代码 //Query query= session.createQuery(hql); //query.list(); releaseSession(session); 另外还可以用getH
继承 HibernateDaoSupport 的getSession 问题
这段时间遇到一个问题,接收的项目Dao继承的是 HibernateDaoSupport 且没有加上事务 在进行后期测试的时间发现web服务器内存爆掉了,后来检测了一下session的开启数,发现有很多session没有关掉,因为这个问题就到网上查了资料,网上大部分的解决如下 1.重写 HibernateDaoSupport用ThreadLocal保存Session列表并编写一个配套的过滤器