Java 使用Hibernate和Oracle数据库存储JSON字段
我正在使用Hibernate和Spring Boot连接到Oracle数据库。 我的一个Java实体是一个包含Jackson JsonNode对象的类,我希望将其作为单个字段保存在数据库中。 Oracle建议将JSON存储为BLOB,但Hibernate似乎不知道默认情况下如何将JsonNode转换为BLOB。下面的实体类示例:Java 使用Hibernate和Oracle数据库存储JSON字段,java,json,oracle,hibernate,blob,Java,Json,Oracle,Hibernate,Blob,我正在使用Hibernate和Spring Boot连接到Oracle数据库。 我的一个Java实体是一个包含Jackson JsonNode对象的类,我希望将其作为单个字段保存在数据库中。 Oracle建议将JSON存储为BLOB,但Hibernate似乎不知道默认情况下如何将JsonNode转换为BLOB。下面的实体类示例: @Entity public class MyEntity { @Id private Integer id; @Column(columnDef
@Entity
public class MyEntity {
@Id
private Integer id;
@Column(columnDefinition = "blob")
private JsonNode data;
}
你建议我如何让它工作?我假设我需要编写某种转换类来转换BLOB。还没有测试,但假设它是您想要的解决方案
Vladmichalcea: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;
}
Oracle建议在何处将其存储为BLOB?上次我检查时,建议将其存储为CLOB(包括检查约束
is json
)@a_horse_和_no_name-Oracle说,使用BLOB可以节省空间并避免字符集转换开销。在这种情况下,我会使用CLOB,但我觉得很有趣,谢谢。