具有多个数据源和Hibernate环境的Grails

具有多个数据源和Hibernate环境的Grails,grails,datasource,hibernate-envers,Grails,Datasource,Hibernate Envers,我正在运行一个具有多个数据源的Grails2.2.4应用程序。一个要求是使用Hibernate Envers提供审计。我做了以下工作: 域类用org.hibernate.envers.Audited注释 hibernate:hibernate envers:3.6.10.Final位于类路径中 Hibernate事件侦听器的定义如下。这应该适用于所有定义的数据源 beans { auditEventListener(AuditEventListener) hibernateEvent

我正在运行一个具有多个数据源的Grails2.2.4应用程序。一个要求是使用Hibernate Envers提供审计。我做了以下工作:

域类用org.hibernate.envers.Audited注释 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插件。上有一个帖子,但这个表单不起作用

您可以为此使用审核日志插件

还有。有关多个数据源,请参见以下内容

或者尝试使用


审计日志插件“记录”到一个表中。在我的设置中,我遵循Hibernate Envers的方法,其中每个域对象都有自己的修订表。所以那是行不通的。Grails Envers插件实现了我的预期,但据我所知,它只为主数据源创建修订条目。为了使它在这个限制下工作,我必须删除我在原始帖子中提到的hibernateEventListeners bean。我暂时没意见。