中易网

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

答案:3  悬赏:0  
解决时间 2021-03-01 20:48
现在问题是 先用HQL查询出了持久化对象,再修改了这个对象 然后由于hibernate关系 自动给这些持久化对象更新。问题是如果中间再有一个HQL查询 也是用了 getCurrentSession 那save方法后session会关闭吗?那第一个用HQL查的对象 还能自动更新吗?
如;
List list = this.getRecoverTCSharedStockDAO().getSaleOrderDetail();//这里查粗来的对象是持久化的对象
deliverGVS(list); 这个方法里 给每个持久化对象 set新值
这样最后没问题 能自动对这些更改的持久化对象更新

问题是:
List list = this.getRecoverTCSharedStockDAO().getSaleOrderDetail();
加了: 新表的查询 但dao层用的还是getCurrentSession
List 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的关闭?如果不是 那又是因为什么原因 又再哪个配置文件里呢?
最佳答案
描述的不够清楚,不清楚你的事务边界,贴出代码看看
全部回答
那是你的事务没有提交!因为事务默认是不提交的. 如果你在web.xml中配置一个opensessiononview就没问题了!
不是,是由hibernate的SessionFactory去管理的。底层的原理你得去看源码了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
正方形的周长是16厘米.圆的面积是多少平方厘
深圳大学后海校区教学楼D座怎么去啊,有知道
首都机场赶航班问题:国内航班,T3航站楼,起
不学佛的人临终要注意那些?
《MATLAB/Simulink系统仿真超级学习手册》的
ICX慈溪家电馆在什么地方啊,我要过去处理事
哪里有真皮表带加工厂家
沈从文?和田惠美?
云龙山?;云龙公园和彭园?
飞腾4.0与4.1有什么区别
西沙员工社区在什么地方啊,我要过去处理事情
深圳前海公司 税票章 需要多少钱一个?
六角咀我想知道这个在什么地方
3月底4月初去大连,海鲜上市了吗?
赢年木门地址在什么地方,想过去办事
推荐资讯
《醉花阴》全词的大意。
有一款单机3D的BMX自行车游戏去哪下悬赏30分
英语作文:周五举行创文明校园、保护学校环境
张记蒸包我想知道这个在什么地方
梦见桥断了。
冒险岛黑骑士属性加点怎么加
公式编辑器下表变字母为正体
竹林阁酒店地址在哪,我要去那里办事
气雾式蔬菜自动化种植设备厂
w10系统都能玩什么单机游戏
为什么这几天我总是魂不守舍的 什么事情都不
1999年定期一年存款3000元,今年取款本息合计
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?