• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xjngbla
V2EX  ›  程序员

Java 求助个问题

  •  
  •   xjngbla · Jun 17, 2022 · 3953 views
    This topic created in 1600 days ago, the information mentioned may be changed or developed.

    今天遇到一个很诡异的问题,调试代码的时候发现查到的数据和库中的数据不一样(像是过时的数据,比如一个字符串,部分匹配的上,但是不全),且插入和更新数据都无效,但是直接写 sql 可以正常操作数据库,比如我走了一遍更新状态接口,数据库实际并没有更新数据,但是代码里再查未更新状态的数据,居然查不到之前更新的那条数据了 springcloud + mybatis + mysql

    18 replies  •  2022-06-18 00:13:52 +08:00
    yumc
    yumc
    Jun 17, 2022
    1
    这种问题,大多是使用不正确或不细心。只有贴关键代码才能看出来咯
    newaccount
    newaccount
    Jun 17, 2022
    2
    猜不出来,可能:
    1. 执行到断点的时候 session 还没提交?
    2. 试试关掉 mybatis 一级二级缓存?
    devswork
    devswork
    Jun 17, 2022
    3
    我感觉就是你数据库工具里连接的数据库 和 spring 项目里的数据库连接不是同一个,哈哈哈哈
    xjngbla
    xjngbla
    OP
    Jun 17, 2022
    4
    @newaccount #2 谢谢,我试试
    xjngbla
    xjngbla
    OP
    Jun 17, 2022
    5
    @devswork #3 这个不可能
    notwaste
    notwaste
    Jun 17, 2022
    6
    会不会是加了事务 方法没执行完就跟去数据库对比了?
    Suddoo
    Suddoo
    Jun 17, 2022 via iPhone
    7
    一面之辞,说不清

    或许服务有多个实例,接受请求的实例运行的代码逻辑和你本地的代码不一样,查出来的数据当然不一样

    或许……
    xjngbla
    xjngbla
    OP
    Jun 17, 2022
    8
    @Suddoo #7 所有服务都连接的同一个库
    87B3F508
    87B3F508
    Jun 17, 2022
    9
    是不是事务设置成 readOnly 了?
    pigspy
    pigspy
    Jun 17, 2022
    10
    检查下是不是经过了缓存,比如用了 @Cacheable 这种东西
    tobepro
    tobepro
    Jun 17, 2022❤️2
    11
    按照我之前出类似问题的经验。越诡异的问题一般都是因为一些低级问题导致的。好好仔细检查本地配置和服务器配置。肯定能发现问题。
    xwayway
    xwayway
    Jun 17, 2022
    12
    你别 debug 啊,你直接把你服务的 sql 打出来,坑定是你 debug 到真实执行的过程中,数据被某些东西例如楼上提到的 缓存,readonly ,aop 等东西改了
    ohmycorolla
    ohmycorolla
    Jun 17, 2022
    13
    1.是否有缓存
    2.你以为对应的是这条数据,其实并不是
    speedofstephen
    speedofstephen
    Jun 17, 2022
    14
    感觉就是 2 楼说的问题啊。 你开事务了么, 如果开启了, 事务是在方法执行完提交的。 现在我有点生疏了,讲不好。建议百度以下脏读幻读
    Jooooooooo
    Jooooooooo
    Jun 17, 2022
    15
    你是不是 debug 打断了流量, 没跑完.
    tianyu94
    tianyu94
    Jun 17, 2022
    16
    我最近遇到一个,时序数据库存数据,动态 SQL 插入数据报语法错误,但是把输出的日志复制出来执行却可以。后面发现有特殊的 UTF8 字符(比如 `\u0000`)这种,替换了这种才解决。
    luckyman
    luckyman
    Jun 17, 2022 via iPhone
    17
    让大家猜谜语呢?
    panerai
    panerai
    Jun 18, 2022
    18
    总结一下就是:
    1. 事务没处理好
    2. 缓存
    3. 配置不对,连的不是同一个库
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5593 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 03:08 · PVG 11:08 · LAX 19:08 · JFK 22:08
    ♥ Do have faith in what you're doing.