HibernateEventListeners没有捕获事件

时间:2014-01-27 13:52:27

标签: mysql hibernate mongodb grails gorm

我有一个使用GORM的grails项目。

我需要使用hibernates事件侦听器后插入事件。这是我的班级

class PersistenceListener implements PostInsertEventListener {

@Override
void onPostInsert(PostInsertEvent postInsertEvent) {
    println("postInsert")
    println(postInsertEvent)
    println(postInsertEvent.entity)
}

这是我的resources.xml:     豆= {

persistenceListener(PersistenceListener)

hibernateEventListeners(HibernateEventListeners) {
  listenerMap = ['post-insert': persistenceListener]
}

}

我有两个数据存储区。一个是使用mysql,一个是使用mongodb。奇怪的是,监听器正在捕获发往mysql的事件,但没有捕获mongodb事件。我不知道为什么。有谁知道这个问题?也许是因为我有两个数据存储区?

2 个答案:

答案 0 :(得分:1)

GORM没有使用Hibernate与MongoDB交谈,所以遗憾的是你无法使用Hibernate的事件监听器API挂钩到MongoDB持久性事件。

another stackoverflow question here演示如何为任意GORM事件注册侦听器。也许你可以试试这样的东西?

答案 1 :(得分:0)

您是否尝试过使用GORM events?例如:

class YourDomainClass {

  def afterInsert() { 
    // stuff to do after saving a new instance goes here
  } 
}