日期:2014-05-18  浏览次数:20843 次

spring 事务管理,查询数据不一致的问题
如题,代码基本功能描述:接口A中有两个接口:B(接口)、C(接口)
接口B进行数据更新操作:通过person表中的id获取person,然后更新person.name的值
接口C查询更新的数据操作:通过更新后的name值,查询接口B更新的那条数据

A接口使用了spring事务控制,C接口查询为空(查询不到B接口更新的数据),本人理解如果在一个事务里,也就是一个线程中,B接口没有到数据库,但是C接口也是可以查询到B接口更新的数据的!

spring 数据库 事务管理

------解决方案--------------------
调用C接口根本就不是事务 只是一个查询而已

在调用完B接口后 立即提交 然后使用C来查询
------解决方案--------------------
引用:
如果提交后,立即查询,时间间隔在毫秒级,那么会存在查询不到数据的情况。这个实验我做过。

这种延迟在程序中确实不好处理
既然这样那你为什么C查询的时候 不根据id来查?
有什么特殊的业务需求?