【问题标题】:Storing JSON field using Hibernate and Oracle DB使用 Hibernate 和 Oracle DB 存储 JSON 字段
【发布时间】:2019-03-31 09:26:19
【问题描述】:

我正在使用 Hibernate 和连接到 Oracle 数据库的 Spring Boot。 我的 Java 实体之一是一个包含 Jackson JsonNode 对象的类,我想将它作为单个字段保存在数据库中。 Oracle 建议将 JSON 存储为 BLOB,但默认情况下 Hibernate 似乎不知道如何将 JsonNode 转换为 BLOB。下面的示例实体类:

@Entity    
public class MyEntity {
  @Id
  private Integer id;

  @Column(columnDefinition = "blob")
  private JsonNode data;
}

你会建议我如何让这个工作?我假设我需要编写某种转换类来与 BLOB 进行转换。

【问题讨论】:

  • Oracle 建议将其作为 BLOB 存储在哪里?上次检查时,建议存储为CLOB(包括检查约束is json
  • @a_horse_with_no_name - Oracle 表示您可以节省空间并避免 BLOB 的字符集转换开销。在这种情况下我会使用 CLOB,但请参阅 docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/…
  • 有趣,谢谢。

标签: java json oracle hibernate blob


【解决方案1】:

尚未测试,但假设它是您想要的解决方案
com.vladmihalcea:hibernate-types-52:2.7.0

@Entity
@TypeDef(
     name = "json",
     typeClass = JsonBlobType.class
)

public class MyEntity {
    @Id
    private Integer id;

    @Type(type = "json")
    private JsonNode data;
}

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    相关资源
    最近更新 更多