leeton
V2EX  ›  Java

请教一个 springboot 项目更新数据库异常的问题

By leeton at 2023 年 6 月 19 日 · 1687 次点击

有一个 update 方法和一个 save 方法,单独执行都没问题,一起执行 update 和 save 就报错。

但是把他俩调换位置,把 save 放在 update 方法前面就没问题。

业务上不允许调换位置,因为需要先 update 逻辑删除,再 save 。

两个方法操作的不是同一个表。

项目里有用到多数据源,用的 mybatis-plus 。但是这两个表是同一个数据库。

尝试不加事务控制,也不行。

指定了 @DS 数据源也不行。

把 save 方法代码删了,改成直接拼接一个写死的 insert 语句也是一样的错。

有遇到过的朋友吗

Cause: java.sql.SQLException: 0

; 0; nested exception is java.sql.solException: 0

at org.springframework.jdbc.supportsstateslexceptionrans Lator.doTranslate(SOLStateSOLExceptionTranslator.java:110)

at org.springframework.jdbc.support.AbstractFallbacksQLExcepti ionTranslator.translate(AbstractFallbackSQLExceptionTranslatorjava:70)

at org.springframework.idbc.support.AbstractFallbackso Except LonTranslator.translate

日志是从图片上 ocr 的,个别字错误。

4 条回复
xuanjin
   1
xuanjin  
   2023 年 6 月 20 日   ❤️ 1
看起来像是事务导致了数据源配置失效?
liuzhedash
   2
liuzhedash  
   2023 年 6 月 20 日   ❤️ 1
还是拍个照片好些,最好还有表结构和对应的 update/save 代码
imv2er
   3
imv2er  
   2023 年 6 月 20 日   ❤️ 1
statcktrace 贴全一些
附上简化后的代码样例
leeton
   4
leeton  
OP
   2023 年 6 月 20 日 via iPhone
@imv2er #3 @liuzhedash #2 @xuanjin #1
谜底揭晓 mysql-connector 版本太高导致的,从 8.x 换到 5.x 就好了,郁闷两天🤣
© 2026 V2EX · 31ms · 3.9.8.5