Регистрация пользовательской привязки Jooq в Java

#java #postgresql #jooq #jsonb

#java #postgresql #jooq #jsonb

Вопрос:

У меня есть пользовательская привязка, написанная для преобразования из пользовательского типа в тип Postgres json. В этой части документации упоминается, как зарегистрироваться с использованием xml, но я использую Java. Я пытался найти, чтобы найти, как это сделать, но тщетно.

Любая помощь приветствуется.

Ответ №1:

Если под «я использую Java» вы имеете в виду использование конфигурации генератора программного кода с использованием Java:

Здесь есть раздел руководства о настройке генератора программного кода:

http://www.jooq.org/doc/latest/manual/code-generation/codegen-programmatic

По сути, все элементы XML также существуют как типы Java, которые генерируются с помощью XJC из конфигурации генерации кода XSD, поэтому вся конфигурация XML сопоставляется 1: 1 с конфигурацией Java, включая привязки типов данных (через ForcedType объекты).

Если «я использую Java», вы имеете в виду, что вы не используете генератор кода и хотите создать привязку:

Генератор кода не делает ничего волшебного. Все, что он делает, вы также можете сделать вручную. Вы можете легко вызвать:

 DataType<MyJsonType> jsonType = 
    SQLDataType.VARCHAR.asConvertedDataType(new MyJsonBinding());
Field<MyJsonType> jsonField = field(name("my_table", "my_column"), jsonType);
  

Конечно, использование генератора кода вместо этого очень поможет…

Комментарии:

1. Спасибо Лукасу. Я не использую генератор кода, а использую jooq только для создания sql и использования этих sqll, выполняемых вне системы. Здесь я хочу настроить некоторую пользовательскую привязку, чтобы она могла генерировать sqll, когда я устанавливаю значения пользовательского типа. Как мне установить пользовательскую привязку в экземпляре DSL?

2. @singularity: Я вижу, извините, я неправильно понял ваш вопрос. Я обновлю соответствующим образом

3. Спасибо Лукасу. Ценю ваше время и помощь.