具有多个数据源和Hibernate环境的Grails
我正在运行一个具有多个数据源的Grails2.2.4应用程序。一个要求是使用Hibernate Envers提供审计。我做了以下工作: 域类用org.hibernate.envers.Audited注释 hibernate:hibernate envers:3.6.10.Final位于类路径中 Hibernate事件侦听器的定义如下。这应该适用于所有定义的数据源具有多个数据源和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
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。我暂时没意见。