同样的查询sql代码执行和手动执行脚本查询结果不一致(不一定是程序问题!!避坑)

文章大纲

一.场景复现

二.问题原因

三.解决思路

四.总结

正文

1.场景复现:

方法执行报错,查看报错信息得知是MybatisePlus中getOne方法查出两条结果,通过控制台输出的日志执行后明确只有一条符合查询条件的记录,通过断点获取到代码跑出的两条记录,对比参数的确有一条不符合查询条件的记录也查出来了,但是这里打印对象却发现条件参数的属性值是一样, 但是根据这两个记录的id去数据库查出来的结果是不一致的。

2.问题原因:

由于我在查询之前修改了其中一条数据的属性,然后查询的时候又带上了这个属性导致,数据库的确存在了两条符合查询条件的记录,但是由于这个修改和后面的查询在同一个事务中,又因为getOne方法已报错导致之前的修改操作进行了回滚,所以出现了代码跑出的结果和手动查询结果不一致的问题。

3.解决思路:

修改代码执行顺序,将修改操作放在查询的后面执行即可。

4.总结:

在代码逻辑顺序上尽量做到先执行查询方法,修改方法放最后执行!!!

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值