spring事务隔离性问题
我用spring定义了两个事务:
事务1:查表a的第一条记录的id;
事务2:根据id做一些操作,然后删除表a的第一条记录。
两个事务在一个for循环中,不断的取表a的第一条记录,直到删除表中的所有记录。
for(){
事务1;
事务2;
}
但实际运行时出现了这样的情况,第n+1次循环读取了第n次循环中已经删除的id,进行了无效处理。也就是第n次循环中事务2的删除操作还没有commit,n+1次循环中的事务1就进行了查表操作,得到了删除前的数据。
之后我将两个事务合并为一个事务3,就不会出现这种情况。
for(){
事务3;
}
请问各位大牛,这里的事务1和事务2之间没有隔离性么?事务2的修改未提交,事务1就可以读取?
为什么合并成事务3后不同循环中的事务3就可以保证串行操作?
项目用的是Spring+Struts+hibernate,数据库为oracle