JSONB PostgreSQL с jOOQ 3.10

Как я могу записать переменную String в столбец PostgreSQL JSONB без сгенерированных классов, используя jOOQ 3.10?

dsl.insertInto(table, Arrays.asList(
    DSL.field("configuration")
))
.values(
    data.getConfiguration()
).execute(); 

У меня есть строка json в data.getConfiguration(), но я получаю исключение

org.postgresql.util.PSQLException: ERROR: column "configuration" is of type jsonb but expression is of type character varying

person Hayami Pysh    schedule 17.04.2020    source источник
comment
Используйте тот же подход, который я описал вам здесь: stackoverflow.com/a/61235471/521799   -  person Lukas Eder    schedule 17.04.2020
comment
но SQLDataType не имеет типа JsonB, и у меня нет класса для привязок   -  person Hayami Pysh    schedule 17.04.2020
comment
Вы можете использовать любой тип SQLDataType.* для привязки, в том числе, например. SQLDataType.VARCHAR. И вы должны сами написать этот класс для своей привязки.   -  person Lukas Eder    schedule 17.04.2020


Ответы (1)


Ответ такой же, как и на предыдущий вопрос. Запишите привязку типа данных (или лучше: обновите версию jOOQ!).

DSL.field(name("jsonb_column"), 
  SQLDataType.VARCHAR.asConvertedDataType(new MyJSONBBinding()));

Ручная ссылка на предыдущий ответ, который я дал показывает, как это сделать.

person Lukas Eder    schedule 17.04.2020