Перехватчики Hibernate или прослушиватели событий - это общий подход к выполнению этого требования.Если вы решите использовать перехватчик, обязательно прочитайте документацию , потому что это может быть сложно.Например, onFlushDirty является отличным местом для обнаружения изменений и ведения журнала аудита, однако:
Обратите внимание, что не все сбрасывания заканчиваются фактической синхронизацией с базой данных, в этом случаеновый currentState будет распространен на объект, но не обязательно (немедленно) в базу данных.
Это означает, что onFlushDirty можно вызывать любое количество раз с точно такими же данными, прежде чем они будут фактически записаны.в базу данных.Чтобы избежать дублирования регистрации в нашем примере, вы можете попробовать кэшировать информацию об изменениях, которые вы хотите зарегистрировать, и записывать их только через postFlush .