Mysql JSON类型使用spring数据jpa有乱码

时间:2016-08-23 05:11:42

标签: mysql spring spring-data-jpa

我已将MySQL的字符集设置为utf8mb4,并且它适用于varchar类型,保存和阅读中文字符工作正常。

但是当谈到JSON类型时,保存工作正常,而使用spring-data-jpa将JSON作为字符串读取时,它会变得混乱。

我尝试过以下设置,但不起作用。

spring.datasource.url = jdbc:mysql://localhost:3306/TAIMIROBOT?&useUnicode=yes&characterEncoding=UTF-8
spring.datasource.init-sql="SET NAMES utf8mb4 COLLATE utf8mb4_bin;"

1 个答案:

答案 0 :(得分:0)

此问题已得到修复。 bugs.mysql.com/bug.php?id=80631

  

ResultSet.getString()有时返回列的乱码数据   JSON数据类型。这是因为JSON数据是由MySQL使用的二进制编码   utf8mb4字符集,但使用ISO-8859-1由Connector / J解码   字符集。

     

此修复程序已包含在Connector / J 6.0.5中。 5.1.40的条目   changelog已包含在6.0.5更改日志中。

如果您遇到同样的问题,只需将maven pom文件中的连接器版本更新为6.0.5(如果您使用的是maven)。