相关疑难解决方法(0)

将PostgreSQL JSON列映射到Hibernate值类型

我的PostgreSQL DB(9.2)中有一个带有JSON类型列的表.我很难将此列映射到JPA2实体字段类型.

我试图使用String,但是当我保存实体时,我得到一个异常,它无法将字符转换为JSON.

处理JSON列时使用的正确值类型是什么?

@Entity
public class MyEntity {

    private String jsonPayload; // this maps to a json column

    public MyEntity() {
    }
}
Run Code Online (Sandbox Code Playgroud)

一个简单的解决方法是定义文本列.

java postgresql json hibernate jpa

72
推荐指数
5
解决办法
7万
查看次数

存储json,jsonb,hstore,xml,enum,ipaddr等失败,"column"x"的类型为json,但表达式的类型字符不同"

当使用PostgreSQL将数据存储在一个绳状验证类型的字段,如xml,json,jsonb,xml,ltree,等等,所述INSERTUPDATE失败等错误:

column "the_col" is of type json but expression is of type character varying
Run Code Online (Sandbox Code Playgroud)

... 要么

column "the_col" is of type json but expression is of type text
Run Code Online (Sandbox Code Playgroud)

为什么?我能做些什么呢?

我正在使用JDBC(PgJDBC).

这通过Hibernate,JPA和各种其他抽象层发生.

PostgreSQL团队的"标准"建议是CAST在SQL中使用a .这对于使用查询生成器或ORM的人来说没有用,特别是如果这些系统没有对数据库类型的明​​确支持json,因此它们通过String应用程序进行映射.

一些ORM允许实现自定义类型处理程序,但我真的不想为每个ORM编写每个数据类型的自定义处理程序,例如Hibernate上的json,EclipseLink上的json,OpenJPA上的json,Hibernate上的xml,...用于编写通用自定义类型处理程序的JPA2 SPI没有.我正在寻找一个通用的解决方案.

postgresql json casting jpa jdbc

20
推荐指数
1
解决办法
9992
查看次数

标签 统计

jpa ×2

json ×2

postgresql ×2

casting ×1

hibernate ×1

java ×1

jdbc ×1