同一个事务里 查询 已删除但是未提交的数据[bug记录]
来源:互联网 发布:如何看待网络暴力现象 编辑:程序博客网 时间:2024/06/15 17:37
前几天犯了个低级错误,在一个事务方法里老是查询不到某条记录,但是debug卡住时,用db工具查,又能查出值。
经过一番折腾,原来是我在同一个事务里 查询 了已删除但是未提交的数据,当然查询不到了!!!
情况是这样的:
Service层(spring事务管理配置在这一层,此方法配了PROPAGATION_REQUIRED)有个方法function m()写得很长,
其中有2步是
1. delete from B where objectid =‘TestB’
2. select * from A where A.bobjectid in (select objectid from B where objectid =‘TestB’)
由于 step 1和step 2 在同一个事务方法,而且step1已经删除了TestB,故step2肯定查询不到记录。
其实这是个很容易发现的问题,但是由于m方法,步骤较多较复杂,而且step1和step2的代码位置相隔较远,m方法最先也不是本人编写的,
所以被搞得有点蒙,直到排除了其它所有的可能,才确认是事务未提交造成的。
解决办法so easy了,把step2 提到step1前面就可以了。
今天特地补一篇,提醒以后不要浪费时间犯这种错误。
0 0
- 同一个事务里 查询 已删除但是未提交的数据[bug记录]
- 删除oracle未提交的事务
- SQL查询未提交事务的方法
- 跳过已编辑未提交的数据
- 查询未提交事务个数
- 如何查到未提交的事务,堵塞的记录
- sql developer默认是不自动提交事务的,如何查询未被提交的事务
- 如何查询mysql事务未提交
- ORACLE 未提交事务与语句查询
- Oracle恢复删除并已提交的数据
- 查找客户端未提交的事务语句
- 事务未提交导致的异常
- mysql查看未提交的事务进程
- Sql 查询同一个表中两个字段里相同的数据
- Hibernate事务未提交
- 事务未提交读
- 获取同一个页面里的数据
- 事务已提交读
- 最小堆与最大堆的实现
- JDBC与CMD方式执行MySQL文件
- Z0-851-Oracle认证专家,Java SE 6的程序员考试
- epoll的LT和ET模式
- 经纬财富:南康ADP数据过后,金银动向解析
- 同一个事务里 查询 已删除但是未提交的数据[bug记录]
- 给导航栏添加停留样式
- Android中fill_parent与match_parent的区别
- win下mysql安装
- 黑马程序员_面向对象
- 程序员应该具备能力
- WG6 3.2寸双卡的Java无线GSM手机
- HTML5游戏探讨,如何让微信游戏只能运行在微信中
- 基于Spring可扩展Schema提供自定义配置支持