mongodb - Grails 文档中的自定义事件监听器示例

标签 mongodb grails grails-orm bootstrapping

我正在尝试在 Bootstrap.groovy 中添加自定义 GORM 事件监听器类,如 Grails documentation 中所述但它不适合我。这是直接来自文档的代码:

def init = {
    application.mainContext.eventTriggeringInterceptor.datastores.each { k, datastore ->
        applicationContext.addApplicationListener new MyPersistenceListener(datastore)
    }
}

当我运行它时,编译器提示 application 和 applicationContext 为空。我试过将它们添加为类(class)成员,但它们并没有神奇地连接到服务风格上。到目前为止我最接近的是:

def grailsApplication
def init = { servletContext ->
    def applicationContext = servletContext.getAttribute(ApplicationAttributes.APPLICATION_CONTEXT)
    grailsApplication.mainContext.eventTriggeringInterceptor.datastores.each { k, datastore ->
        applicationContext.addApplicationListener new GormEventListener(datastore)
    }
}

但我仍然遇到错误:java.lang.NullPointerException: 无法获取 null 对象上的属性“datastores”

感谢阅读...

编辑:版本 2.2.1

最佳答案

如果你这样做:

ctx.getBeansOfType(Datastore).values().each { Datastore d ->
   ctx.addApplicationListener new MyPersistenceListener(d)
}

这不需要安装 Hibernate 插件就可以工作

关于mongodb - Grails 文档中的自定义事件监听器示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913877/

相关文章:

javascript - Mongodb 按另一个数组的顺序排序

grails - Grails验证密码

hibernate - 为什么Hibernate在启动时要花费数小时的负载?

grails - 用 Gorm 展平对象模型?

java - GORM Grails 中的延迟加载

python - 将 numpy 结构化数组的字段插入 mongodb

mongodb - MongoDB 文本索引的词干提取无法正常工作

node.js - 当我尝试从本地主机发布新产品时收到错误消息

javascript - Grails 在 https 中引用 js

hibernate - Grails - 查找用户今天创建的所有帖子