#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. Спасибо Лукасу. Ценю ваше время и помощь.