首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jsonb库从Postgres读取Jsonb

如何使用jsonb库从Postgres读取Jsonb
EN

Stack Overflow用户
提问于 2018-10-23 00:25:34
回答 1查看 1.7K关注 0票数 0

我正在试着从postgre表中读取一个jsonb字段。我尝试以以下方式使用Jsonb库将其读入Jsonb类型:

代码语言:javascript
复制
@Entity
@Table(name = "test")
data class Test(
    @Id
    val id: UUID = UUID.randomUUID(),

    @Type(type = "jsonb")
    @Column(columnDefinition = "jsonb")
    val candidates: Jsonb = JsonbBuilder.create(),

)

但显然,它并没有给我带来以下错误:

代码语言:javascript
复制
Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [jsonb]

我找到了一些帖子和答案。但显然他们都没有使用 api。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 06:44:27

首先,PostgreSQL jsonb类型与您正在使用的JSR-367 Java不相对应。那个序列化工具。您需要的是JSR-353 javax.json:javax.json-api,它的参考实现是org.glassfish:javax.json

意义而不是

代码语言:javascript
复制
val candidates: Jsonb = JsonbBuilder.create()

你应该用

代码语言:javascript
复制
val candidates: JsonObject = Json.createObjectBuilder().build()

使Hibernate (错误消息显示您正在使用) 5.1、5.2或5.3识别JSR-353对象的最简单方法是将此类型贡献者库添加到项目依赖项中。Hibernate 5.1是最低要求的版本,从6.0开始(或者最早可能是5.4),类型系统将被重新设计并使其不兼容。

哦,您将不需要使用这个@Type注释。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52939431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档