【发布时间】:2019-05-25 08:50:59
【问题描述】:
我在springboot(2.1)+postgres(10.5)+hibernate(5.3.7)中使用jsonb。
以下是文件的变化:
- 在 pom.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]
所有其他设置都是使用 postgres 的标准 sprintboot 设置。上述错误的帖子创建即将到来。
请让我知道可能的原因,提前谢谢:)
【问题讨论】:
-
你找到解决办法了吗?
-
不是确切的解决方案,但我现在能够继续的方式是将“私人列表替代位置”更改为“私人 JsonNode 替代位置”,没有时间深入挖掘更好的解决方案,这很好用,但会缺少对象类型检查
-
我打算用JDBC,用Hibernate比什么都麻烦。它确实没有节省开发时间。 Hibernate 的性能也较差
标签: java postgresql spring-boot jsonb