Hibernate里的 getCurrentSession取的当前session是由谁管理的?是Spring吗?

现在问题是先用HQL查询出了持久化对象,再修改了这个对象然后由于hibernate关系自动给这些持久化对象更新。问题是如果中间再有一个HQL查询也是用了getCurren... 现在问题是 先用HQL查询出了持久化对象,再修改了这个对象 然后由于hibernate关系 自动给这些持久化对象更新。问题是如果中间再有一个HQL查询 也是用了 getCurrentSession 那save方法后session会关闭吗?那第一个用HQL查的对象 还能自动更新吗?
如;
List<RecoverTCSharedStock> list = this.getRecoverTCSharedStockDAO().getSaleOrderDetail();//这里查粗来的对象是持久化的对象
deliverGVS(list); 这个方法里 给每个持久化对象 set新值
这样最后没问题 能自动对这些更改的持久化对象更新

问题是:
List<RecoverTCSharedStock> list = this.getRecoverTCSharedStockDAO().getSaleOrderDetail();
加了: 新表的查询 但dao层用的还是getCurrentSession
List<RecoverTCSharedStock2> list2 = this.getRecoverTCSharedStockDAO().getSaleOrderDetail();
然后进行了 save(list2)操作 就是往list2里插入了新对象 ,
问题来了。。。这里会不会关闭了之前的第一个session??
执行完上面的save session还存在吗?我看网上说持久化对象都是跟session关联的,那这个session是什么结果呢?

deliverGVS(list);
补充问题:我这里用HQL查出了持久化对象 并给这些对象set了几个属性。然后没有对其进行update()方法的操作,因为持久化对象不用update 也会自动更新。但前提是这个getCurrentSession没有被关闭。我现在担心的是这个session会不会因为中途的save或者update操作给关闭了 那我这个本来持久化的对象 不能自动更新。。。
进一步的研究: 事务是执行完前缀名字方法名的 就提交,但问题又出来了,如果2个事务都会被一个session管理 那如我上面问的题一样 方法体中的一个事务提交 会不会导致 session的关闭?如果不是 那又是因为什么原因 又再哪个配置文件里呢?
展开
 我来答
矢风快乐
2013-09-25 · TA获得超过991个赞
知道小有建树答主
回答量:632
采纳率:100%
帮助的人:324万
展开全部
不是,是由hibernate的SessionFactory去管理的。底层的原理你得去看源码了。
更多追问追答
追问
session是SessionFactory管理  但封装的原理都是一样的吧  那也肯定是每次事务提交后 自动关闭session,我找到了管理事务的配置文件 事务是执行完前缀名字方法名的 就提交,但问题又出来了,如果2个事务都会被一个session管理  那如我上面问的题一样 方法体中的一个事务提交 会不会导致 session的关闭?如果不是  那又是因为什么原因  又再哪个配置文件里呢
追答
1。一个session就管理一个事务的。不能同时搞2个事务。
2.session关闭前事务必须提交,如果2个事务没有提交,session是不能关闭的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
timeFirefox
2013-09-25 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:33.9万
展开全部
你的意思是用JDBC 连接数据库 做2次添加 中途会不会在第一次添加后关闭连接导致最后一个添加不成功?
更多追问追答
追问
补充问题了
追答
这个你放心不会的 。但是我建议你这样做 , JDBC连接数据库单独写一个方法,然后在你更新添加查询的方法里调用,这样就OK了 。 如果你不懂怎么做 我可以把我的代码贴出来,你参考这粘贴复制改改就OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niulanghan
2013-09-25 · TA获得超过1046个赞
知道小有建树答主
回答量:886
采纳率:100%
帮助的人:125万
展开全部
描述的不够清楚,不清楚你的事务边界,贴出代码看看
更多追问追答
追问
事务边界从哪个配置文件看?
追答
看来你的事务管理是默认设置,如果是默认设置,
如果你的transaction没有commit,session应该不会关闭。
你试一下不就OK了?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式