Изменение векторов перед применением и отправкой#
Для редактирования вектора изменения перед отправкой или применением реализуйте интерфейс VectorConverter со следующими методами:
getPriority— приоритет обработчика. Обработчики вызываются в порядке возрастания приоритета.preFlushConvert— обработчик перед операциейflush.preCommitConvert— обработчик перед операциейcommit.preHandleConvert— обработчик перед применением вектора.
Созданную реализацию добавьте в конфигурацию плагина репликации:
@Bean
public StandinPlugin standinPlugin(
@Qualifier("masterDataSource") DataSource masterDataSource,
@Qualifier("standinDataSource") DataSource standinDataSource,
EntityManagerFactory entityManagerFactory,
JournalCreatorClientApi journalClient
) {
Configurator configurator = StandinPlugin.configurator(entityManagerFactory);
...
configurator.getConverters().add(vectorConverter);
...
return configurator.configure();
}
Важно
Если передается дополненная модель, по сравнению со стороной применения, и используется тип сериализатора JSON_GSON или JSON_GSON_NEXT, то включите пропуск неизвестных полей при десериализации:
configurator.getJsonHints().put("skipUnknown", true);