【发布时间】:2020-01-01 22:39:54
【问题描述】:
我在通过 JPA 访问的 MySQL 数据库上有一个可本地化/unicode JSON 列。我的 API 响应中的 unicode 字符串出现乱码
{
"bannerTitle": "Copyright © 2019",
}
JSON 绑定到以下实体属性
@Column(nullable = false, columnDefinition = "json")
private String settings;
我的数据源 URL 的 Unicode 标记如下
jdbc:mysql://localhost:3306/mydb?characterEncoding=utf-8&useUnicode=yes
我尝试在以下几行中使用转换器
public class StringToByteConverter implements AttributeConverter<String, byte[]>
修复了我的获取查询,但我的保存查询因
而崩溃Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在使用 JPA 持久性库时,正确的修复方法是什么?
操作系统:Ubuntu 18.04
MySQL:5.7.27
Java:openjdk 版本“1.8.0_222”
春季启动:1.5.6.RELEASE
【问题讨论】:
-
hmmm.. 我的问题更多是关于如何在 JPA/java 级别实现这一点