При использовании PostgreSQL для хранения данных в поле типа типа, например, xml
, json
, jsonb
, xml
, ltree
и т.д., INSERT
или UPDATE
с ошибкой:
column "the_col" is of type json but expression is of type character varying
... или
column "the_col" is of type json but expression is of type text
Почему? Что я могу сделать с этим?
Я использую JDBC (PgJDBC).
Это происходит через Hibernate, JPA и всевозможные другие уровни абстракции.
"Стандартным" советом команды PostgreSQL является использование CAST
в SQL. Это не полезно для людей, использующих генераторы запросов или ORM, особенно если эти системы не имеют явной поддержки типов баз данных, таких как json
, поэтому они отображаются в приложении String
.
Некоторые ORM разрешают реализацию обработчиков настраиваемого типа, но я действительно не хочу писать пользовательский обработчик для каждого типа данных для каждого ORM, например. json on Hibernate, json on EclipseLink, json on OpenJPA, xml на Hibernate и т.д. Там нет JPA2 SPI для написания универсального обработчика настраиваемого типа. Я ищу общее решение.