Я использую следующую хранимую процедуру для поддержания времени редактирования нескольких таблиц с помощью триггеров для этих таблиц:
CREATE OR REPLACE FUNCTION maintain_edit_time()
RETURNS TRIGGER AS $t_edit_time$
BEGIN
NEW.edit_timestamp = NOW();
RETURN NEW;
END;
$t_edit_time$ LANGUAGE plpgsql;
При создании объектов jOOQ для рассматриваемой базы данных я получаю следующий сгенерированный код:
/**
* @deprecated Unknown data type. Please define an explicit {@link org.jooq.Binding} to specify how this type should be handled. Deprecation can be turned off using <deprecationOnUnknownTypes/> in your code generator configuration.
*/
@java.lang.Deprecated
public static Object maintainEditTime(Configuration configuration) {
MaintainEditTime f = new MaintainEditTime();
f.execute(configuration);
return f.getReturnValue();
}
/**
* @deprecated Unknown data type. Please define an explicit {@link org.jooq.Binding} to specify how this type should be handled. Deprecation can be turned off using <deprecationOnUnknownTypes/> in your code generator configuration.
*/
@java.lang.Deprecated
public static Field<Object> maintainEditTime() {
MaintainEditTime f = new MaintainEditTime();
return f.asField();
}
Я предполагаю, что это потому, что у меня нет привязки jOOQ между TRIGGER и объектом Java.Однако я не имею ни малейшего представления о том, как бы я определил эту привязку, и при этом у меня нет необходимости в существовании привязки.
Однако, если оставить его в покое, выдается предупреждение о компиляции.Какой самый простой и простой способ решить эту проблему?
Параметры включают отключение устаревания, использование ignoreProcedureReturnValues или создание привязки.В идеале я хотел бы просто не создавать объект Java для этой процедуры, но я не мог найти способ сделать это.
Использование ignoreProcedureReturnValues глобально влияет на проект только из-за этого, что сейчас хорошо, у меня вообще нет других процедур, тем более других с возвращаемым значением.Но я ненавижу ограничивать будущее использование.Кроме того, мне непонятно, что за комментарий «Эта функция устарела с jOOQ 3.6.0 и будет удалена снова в jOOQ 4.0».значит на сайте jOOQ под этим флагом.Флаг исчезает или поддержка типов возвращаемых хранимых процедур исчезает?Короткое изучение проблем jOOQ github не дало мне ответа.
Соблазн просто отключить амортизацию.Это также кажется глобальным и не выгодным изменением, но оно послужит цели.
Если я создал привязку, я понятия не имею, что она будет делать или как ее определять, поскольку TRIGGER действительно не является разумной вещью для привязки объекта Java.Я предполагаю, что я бы указал в качестве значения TRIGGER в элементе disabledType, но привязка Java в лучшем случае кажется пустой тратой времени, а в худшем - вводит в заблуждение.