Java更新資料庫報錯:Data truncation: Cannot create a JSON value from a string with CHARACTER SET

ccm03發表於2024-11-23

一、現象

在Java中,使用mybatis-plus更新實體類物件到mysql,其中一個欄位對應資料庫中json資料型別,更新時報錯:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.

image

報錯資訊:

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'.

二、排查

實體類,已配置欄位轉換器及對映關係。

image

image

上述使用lambdaUpdate()方法,直接set,list集合未被轉換json欄位,導致儲存mysql失敗

三、解決

方式1

使用updateById方法,以物件更新

image

方式2

手動轉換json,儲存成功

image

相關文章