将 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-353javax.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 实体属性
什么 Postgres 类型将映射到休眠中 Float 类型的列?