Хук жизненного цикла JPA срабатывает при запросах БД - PullRequest
1 голос
/ 30 марта 2020

BaseEntity. java (Каждый класс сущностей расширяет BaseEntity)

@EntityListeners({EntityAuditor.class})
public abstract class BaseEntity {
  ...
}

EntityAuditor. java

class EntityAuditor {
  @PostPersist
  void logEntityCreate(Object entity) {
    ...
  }

  @PostUpdate
  void logEntityUpdate(Object entity) {
    ...
  }
  ...
}

Теперь, когда я вызываю findByXyz репозиторий (который имеет аннотацию @transactional) из моего теста, он вызывает метод @PostUpdate. Я понимаю, что JPA пытается сделать DB flu sh в данный момент. Но у меня нет никаких изменений в БД до того, что не передано в БД. Я проверил данные БД до и после триггера. Обновляются только поля отметок времени и версии. Как мне убедиться, что ловушки JPA срабатывают, только если у меня есть что-то, что нужно сохранить в БД?

...