Java 求助个问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xjngbla
V2EX    程序员

Java 求助个问题

  •  
  •   xjngbla 2022-06-17 11:59:40 +08:00 2950 次点击
    这是一个创建于 1225 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    或许……
    xjngbla
        8
    xjngbla  
    OP
       2022-06-17 15:56:04 +08:00
    @Suddoo #7 所有服务都连接的同一个库
    87B3F508
        9
    87B3F508  
       2022-06-17 16:06:51 +08:00
    是不是事务设置成 readOnly 了?
    pigspy
        10
    pigspy  
       2022-06-17 16:09:02 +08:00
    检查下是不是经过了缓存,比如用了 @Cacheable 这种东西
    tobepro
        11
    tobepro  
       2022-06-17 16:15:51 +08:00   2
    按照我之前出类似问题的经验。越诡异的问题一般都是因为一些低级问题导致的。好好仔细检查本地配置和服务器配置。肯定能发现问题。
    xwayway
        12
    xwayway  
       2022-06-17 16:24:48 +08:00
    你别 debug 啊,你直接把你服务的 sql 打出来,坑定是你 debug 到真实执行的过程中,数据被某些东西例如楼上提到的 缓存,readonly ,aop 等东西改了
    ohmycorolla
        13
    ohmycorolla  
       2022-06-17 17:54:10 +08:00
    1.是否有缓存
    2.你以为对应的是这条数据,其实并不是
    speedofstephen
        14
    speedofstephen  
       2022-06-17 18:00:51 +08:00
    感觉就是 2 楼说的问题啊。 你开事务了么, 如果开启了, 事务是在方法执行完提交的。 现在我有点生疏了,讲不好。建议百度以下脏读幻读
    Jooooooooo
        15
    Jooooooooo  
       2022-06-17 18:03:25 +08:00
    你是不是 debug 打断了流量, 没跑完.
    tianyu94
        16
    tianyu94  
       2022-06-17 22:21:08 +08:00
    我最近遇到一个,时序数据库存数据,动态 SQL 插入数据报语法错误,但是把输出的日志复制出来执行却可以。后面发现有特殊的 UTF8 字符(比如 `\u0000`)这种,替换了这种才解决。
    luckyman
        17
    luckyman  
       2022-06-17 23:01:28 +08:00 via iPhone
    让大家猜谜语呢?
    panerai
        18
    panerai  
       2022-06-18 00:13:52 +08:00
    总结一下就是:
    1. 事务没处理好
    2. 缓存
    3. 配置不对,连的不是同一个库
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2549 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 13:18 PVG 21:18 LA 06:18 JFK 09:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86