Я хотел бы синхронизировать таблицу с сервера A на B, запись должна быть точно такой же, как у источника. Это похоже на ручную репликацию.
Этот метод извлекается из исходной записи в виде json и вставляется/обновляется на целевой сервер, чтобы получить те же записи таблицы, включая поле версии.
У меня проблема с обновлением от источника к месту назначения, я обнаружил, что независимо от того, насколько поля идентичны, он будет обновлять дату изменения и поле версии.
Любое решение для принудительного обновления этих полей (версия или дата) без отключения параметра оптимистической блокировки и обхода настраиваемого класса «DefaultRecordListener»




Начиная с jOOQ 3.11, невозможно обойти настройку версии записи или метки времени с помощью стандартной функции. Я создал запрос функции, чтобы реализовать это в jOOQ 3.12: https://github.com/jOOQ/jOOQ/issues/8924
Есть несколько обходных путей, все из которых предполагают, что вы уже отключили Settings.executeWithOptimisticLocking в своей логике копирования данных.
RecordListenerЕсли вы используете версии записи (не метки времени), вы можете установить версию записи на version - 1 перед сохранением записи. Это приведет к тому, что версия будет снова обновлена до того же значения. Хак, но может быть достаточно хорошим.
Вы можете повторно сгенерировать все таблицы, участвующие в этой операции, во второй раз без версий записей/временных меток и использовать эти альтернативные сгенерированные таблицы для копирования данных.
UpdatableRecordВместо использования UpdatableRecord вы можете написать настоящие INSERT утверждения. Обратите внимание, что вы можете передать любой оператор Record в оператор INSERT с помощью метода InsertSetStep.set(Record). Это будет иметь тот же эффект, что и вызов record.insert(), то есть будут вставлены только измененные поля.
спасибо, я использую UpdateSetFirstStep (обновление) или InsertSetStep (вставка) для решения моей проблемы.