当使用PostgreSQL将数据存储在一个绳状验证类型的字段,如xml,json,jsonb,xml,ltree,等等,所述INSERT或UPDATE失败等错误:
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没有.我正在寻找一个通用的解决方案.