将 MySQL JSON 列映射到休眠值类型

Posted

技术标签:

【中文标题】将 MySQL JSON 列映射到休眠值类型【英文标题】:Mapping MySQL JSON column to hibernate value type 【发布时间】:2018-09-02 04:51:46 【问题描述】:

在 Java 代码中使用 JSON 列的最佳做法是什么?具体来说,我对能够使用休眠在 mysql 数据库中保存和查询 JSON 列感兴趣..

@Entity
public class MyEntity 

    private String myField; // this field is a json column

    public MyEntity() 
    

【问题讨论】:

详细说明“合作”。 如果您使用 JSR-353 javax.json 类,那么有一种方法可以自动转换字符串,只需将此依赖项添加到您的项目 mvnrepository.com/artifact/com.mopano/… 否则,您'只需使用手动转换或尝试并希望 JPA AttributeConverter 工作。 【参考方案1】:

Hibernate 中有一个很好的库来处理 JSON 类型。它被称为Hibernate Types,您可以向下滚动到 MySQL 部分以获取正确的示例。

还有一些使用 MySQL 的 JSON API inside query 的示例:

How to search JSON data in MySQL?

【讨论】:

我在使用这个库时遇到异常,该库的值设置为 null 或嵌套超过一层的对象。有人对此有任何想法吗? @DanielPatrick ,这个库基于通用的 Jackson 库,所以至少 null 的问题可以通过正确的 Jackson 映射器配置 fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/… 来解决。很高兴看到更具体的错误跟踪。

以上是关于将 MySQL JSON 列映射到休眠值类型的主要内容,如果未能解决你的问题,请参考以下文章

将 PostgreSQL JSON 列映射到 Hibernate 实体属性

如何将Mysql中的位类型映射到休眠?

什么 Postgres 类型将映射到休眠中 Float 类型的列?

如何将多个值类型集合映射到 Hibernate 中的一个表?

使用休眠映射布尔值

如何解决mysql enum 类型字段的插入问题