Java Hibernate mysql json转换UTF8字符串错误

Java Hibernate mysql json转换UTF8字符串错误,java,mysql,json,hibernate,Java,Mysql,Json,Hibernate,对于Hibernate类型的扩展,我使用Vladmichalcea/Hibernate类型 @Entity @TypeDef ( name = "jsonb-node", typeClass = JsonStringType.class ) public class Catalog { ... @Type (type = "jsonb-node") @Column (columnDefinition = "json") public ArrayNode tags; } 将JSO

对于Hibernate类型的扩展,我使用Vladmichalcea/Hibernate类型

@Entity
@TypeDef (
    name = "jsonb-node",
    typeClass = JsonStringType.class
)
public class Catalog {
...
@Type (type = "jsonb-node")
@Column (columnDefinition = "json")
public ArrayNode tags;
}
将JSON对象从MySQL转换为ArrayNode时,UTF8字符的转换不正确

List <Catalog> catalog = em.createNativeQuery (
"select *"
+ "from Catalog c"
+ "where name regexp ('" + nameRegExpr + "*')"
+ "and isTemplate = true"
, Catalog.class
)
.getResultList ();
List catalog=em.createNativeQuery(
“选择*”
+“来自目录c”
+“其中名称regexp('”+nameRegExpr+“*”)”
+“和isTemplate=true”
,Catalog.class
)
.getResultList();
结果,我得到一个字符串的形式 {“键”:“???????”}

字符串的字节数 7B226B6579223A223F3F227D

MySQL中的源数据存储正确

[ { “钥匙”:“钥匙” } ]

字节 5b0a097b0a0909226b657922203a2022d0bdd0bed0b2d18bd0b9220a097d0a5d


如何正确配置类型转换?

我在编码方面也遇到了同样的问题。所以,首先通过执行查询来检查数据库编码:
从information\u schema.SCHEMATA WHERE schema\u name=“schemaname”中选择default\u character\u set\u name。如果是UTF-8。在hibernate.cfg.xml的
hibernate.connection.url
属性结尾:
jdbc:mysql://localhost/myTableName?UseUnicode=true&characterEncoding=utf8
。这对我很有帮助。正确读取带有utf8字符的varchar类型的其他字段