春靴 | JSONB Postgres | 异常:无法加载类 [jsonb]

Neo*_*Neo 6 java postgresql spring-boot jsonb

我在 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
}
Run Code Online (Sandbox Code Playgroud)

``

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

所有其他设置都是使用 postgres 的标准 sprintboot 设置。创建此上述错误后即将到来。

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

Cha*_*awa 11

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

我只使用我在实体类上需要的单个 typedef 来解决它。

@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
Run Code Online (Sandbox Code Playgroud)

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;
...
Run Code Online (Sandbox Code Playgroud)