gpt4 book ai didi

java - Spring Boot | JSONB Postgres |异常 : Unable to load class [jsonb]

转载 作者:行者123 更新时间:2023-11-29 14:08:38 37 4
gpt4 key购买 nike

我在 springboot(2.1)+postgres(10.5)+hibernate(5.3.7) 中使用 jsonb。

以下是文件中的更改:

  1. 在 pom.xml 中


....
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>2.3.5</version>
</dependency>
....

  1. 实体定义:

```

@Entity(name = "Event")
@Table(name = "event")
@TypeDefs({
@TypeDef(name = "string-array", typeClass = StringArrayType.class),
@TypeDef(name = "int-array", typeClass = IntArrayType.class),
@TypeDef(name = "json", typeClass = JsonStringType.class),
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class),
@TypeDef(name = "jsonb-node", typeClass = JsonNodeBinaryType.class),
@TypeDef(name = "json-node", typeClass = JsonNodeStringType.class),
})
public class Event {

@Type(type = "jsonb")
@Column(columnDefinition = "jsonb")
private List<Location> alternativeLocations = new ArrayList<Location>();

//Getters and setters omitted for brevity
}

```

在运行 springboot 应用程序时出现以下错误:
nested exception is org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [jsonb]

所有其他设置都是与 postgres 一起使用的标准 sprintboot 设置。创建后会出现上述错误。

请让我知道可能的原因,提前致谢:)

最佳答案

我正在使用 hibernate-types-52 类的更新版本 2.4.3,但遇到了同样的错误。

我通过在我的实体类上只使用我需要的单个 typedef 解决了这个问题。

@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)

Postgres 9.4、Java 11、Hibernate 5.3.7

@Entity(name = "audit")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class Audit {
@Type(type = "jsonb")
@Column(name="audit_data", columnDefinition = "jsonb")
private Map<String,Object> auditData;
...

关于java - Spring Boot | JSONB Postgres |异常 : Unable to load class [jsonb],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943108/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com