Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET
1.MyBatis-Plus:简化 CRUD 操作的艺术2.Java学习十七—反射机制:解锁代码的无限可能3.MyBatis-Plus快速入门:从安装到第一个Demo4.MyBatis-Plus条件构造器:构建安全、高效的数据库查询5.深入 MyBatis-Plus 插件:解锁高级数据库功能
6.Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET
7.探索Java动态代理的奥秘:JDK vs CGLIB8.Java泛型:代码世界的“万能钥匙”与“类型契约”9.高效开发助手:深入了解Hutool工具库一、现象
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
报错信息:
Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
; Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
二、排查
实体类,已配置字段转换器及映射关系。
上述使用lambdaUpdate()方法,直接set,list集合未被转换json字段,导致存储mysql失败
三、解决
方式1
使用updateById方法,以对象更新
方式2
手动转换json,存储成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」