我有一个使用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事件。我不知道为什么。有谁知道这个问题?也许是因为我有两个数据存储区?
答案 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
}
}