首页 新闻 会员 周边 捐助

hibernate 事物如何单独提交??

0
悬赏园豆:5 [已解决问题] 解决于 2016-08-25 11:03

一个方法循环处理多条数据,每条数据有有更新update方法,更新同一个表,第一条数据执行完后,第二条数据在update 同一张表时,表已经锁定了,如何处理??

 

就是说第一条数据执行完,就让它把事物提交了,然后再执行第二条sql就不会出现表锁定了,

 

求大侠指导

问题补充:

执行到这个表的时候,update下就锁定, 然后执行select就等待了

 

---------------------------------

非常感谢大家的回答,这个问题解决了,同时更新多个表,有的表使用的hibernate的update方法,而我锁定的那个表使用的是jdbc的update方法导致的,事物锁应该不一样,步改成hibernate的就ok了。我描述的应该不对,到时候在研究下

 

testewr的主页 testewr | 初学一级 | 园豆:3
提问于:2016-08-25 09:48
< >
分享
最佳答案
0

你外面别开事务不就好了.本身事务就是为了保证原子性.你不要原子性.那你要事务干嘛.

收获园豆:2
吴瑞祥 | 高人七级 |园豆:29449 | 2016-08-25 10:20

 现在好像就是这一个表锁定,其他的都表都ok,这是为什么?

testewr | 园豆:3 (初学一级) | 2016-08-25 10:30

@pengweid: 执行到这个表的时候,update下就锁定, 然后执行select就等待了

在同一个事务内是没有不会有锁的.事务内update后上的锁.在事务内是可以读写的.只是事务外会等待.

这种情况更大的可能是:上一个事务没有提交.也没回滚.就开了另一个事务开始select

吴瑞祥 | 园豆:29449 (高人七级) | 2016-08-25 10:43
其他回答(2)
0

不要使用表锁,而使用行锁更新数据或者是在同一个事务中更新多行数据

收获园豆:1
悦光阴 | 园豆:2251 (老鸟四级) | 2016-08-25 09:50
0

首先要想,你的表为什么会锁定

收获园豆:2
伪善者ql | 园豆:250 (菜鸟二级) | 2016-08-25 10:02

事物没有提交啊

支持(0) 反对(0) testewr | 园豆:3 (初学一级) | 2016-08-25 10:12

整个方法结束后,才提交,我现在要做的是如何,单独提交

支持(0) 反对(0) testewr | 园豆:3 (初学一级) | 2016-08-25 10:13

@pengweid: 所以你是用多线程处理多数据的吗?

支持(0) 反对(0) 伪善者ql | 园豆:250 (菜鸟二级) | 2016-08-25 10:21

@伪善者ql: 现在好像是每次更新这个表的时候就会锁定,其他表也更新,但是没锁定,这是什么原因??

支持(0) 反对(0) testewr | 园豆:3 (初学一级) | 2016-08-25 10:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册