Grails с несколькими источниками данных и Hibernate Envers

Я запускаю приложение Grails 2.2.4 с несколькими источниками данных. Одно из требований - обеспечить аудит с помощью Hibernate Envers. Я сделал следующее:

  • Классы домена помечены org.hibernate.envers.Audited
  • org.hibernate:hibernate-envers:3.6.10.Final находится в пути к классам
  • Слушатели событий Hibernate определяются следующим образом. Это должно работать со всеми определенными источниками данных.

    beans {
       auditEventListener(AuditEventListener)
       hibernateEventListeners(HibernateEventListeners) {
          listenerMap = [
            'post-insert': auditEventListener,
            'post-update': auditEventListener,
            'post-delete': auditEventListener,
            'pre-collection-update': auditEventListener,
            'pre-collection-remove': auditEventListener,
            'post-collection-recreate': auditEventListener
          ]
       }
    }
    

Однако записи аудита в таблицы изменений не вносятся. Кто-нибудь подскажет, как это исправить? Это все еще проблема с последней версией Grails? Я мог бы приложить усилия для обновления. Обратите внимание: я использую только Hibernate Envers. Я не использую никаких плагинов Grails. Есть сообщение на nabble.com, но это не сработало.


person majaX1    schedule 24.03.2014    source источник


Ответы (1)


Для этого вы можете использовать плагин журнала аудита. Подключаемый модуль журнала аудита в grails

Также. см. следующие сведения о нескольких источниках данных щелкните меня

Или попробуйте использовать

Подключаемый модуль Grails Envers

person Visme    schedule 24.03.2014
comment
Плагин Audit-Logging "ведет журнал" в единую таблицу. В своих настройках я следую подходу Hibernate Envers, в котором каждый объект домена имеет свою собственную таблицу ревизий. Так что это не сработает. Плагин Grails Envers делает то, что я ожидаю, но, насколько я понимаю, он создает записи ревизий только для первичного источника данных. Чтобы заставить его работать с этим ограничением, мне пришлось удалить bean-компонент hibernateEventListeners, упомянутый в моем исходном сообщении. Я пока в порядке. - person majaX1; 24.03.2014