Springboot |JSONB Postgres |Исключение: невозможно загрузить класс [jsonb] - PullRequest
0 голосов
/ 27 декабря 2018

Я использую jsonb в springboot (2.1) + postgres (10.5) + hibernate (5.3.7).

Ниже приведены изменения в файле:

  1. В пом.xml

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

Определение сущности:

`` `

@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]

Все остальные настройки являются стандартными настройками sprintboot, работающими с postgres.После создания этой ошибки уже вышло сообщение.

Пожалуйста, дайте мне знать возможную причину того же, заранее спасибо:)

1 Ответ

0 голосов
/ 08 мая 2019

Я использую более свежую версию 2.4.3 классов hibernate-types-52 и получаю ту же ошибку.

Я решил это, используя только одну typedef, необходимую для моего класса сущности.

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

Postgres9.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;
...
...