gpt4 book ai didi

Java Persistence API 读取 unicode JSON 列

转载 作者:行者123 更新时间:2023-11-29 15:40:43 24 4
gpt4 key购买 nike

我在 MySQL 数据库上有一个可本地化/unicode JSON 列,可以通过 JPA 访问该列。我的 API 响应中的 unicode 字符串出现乱码

{
"bannerTitle": "Copyright © 2019",
}

JSON 绑定(bind)到以下实体属性

@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:27.7.5
Java:openjdk版本“1.8.0_222”
Spring 启动:1.5.6.RELEASE

最佳答案

尝试使用,

spring.datasource.tomcat.initSQL=SET NAMES 'utf8mb4'

答案之一here重现您遇到的相同错误,并通过使用设置名称 utf8mb4 解决相同的错误。给出了在 JPA 中执行相同操作的方法 here

关于Java Persistence API 读取 unicode JSON 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com