Получите все изменения, внесенные в дочерние сущности, с помощью Hibernate Envers

@Entity
class Foo {
    List<Bar> bars;
}

Как получить все изменения, внесенные в мой объект, имеющий много дочерних элементов, с помощью Hibernate Envers? Мне интересно знать обо всех изменениях, внесенных в стержни (например, создание, изменение, удаление)

https://docs.jboss.org/hibernate/orm/4.1/javadocs/org/hibernate/envers/AuditReader.html


person Rpj    schedule 11.05.2015    source источник


Ответы (1)


Пожалуйста, создайте собственный прослушиватель событий, который расширяет org.hibernate.envers.event.AuditEventListener. Затем вы можете переопределить любой из следующих методов для записи изменений:

  1. onPostRecreateCollection
  2. onPreRemoveCollection
  3. onPreUpdateCollection

Вы можете зарегистрировать свой собственный прослушиватель в конфигурации EntityManager. Ниже приведен простой пример:

<prop key="hibernate.ejb.event.pre-collection-update">
  com.bla.bla.audit.listener.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.pre-collection-remove">
  com.bla.bla.audit.listener.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.post-collection-recreate">
  com.bla.bla.audit.listener.AuditEventListener
</prop>
person Suken Shah    schedule 12.05.2015