2012-07-26 26 views
3

單獨使用Grails MongoDB GORM Plugin(v 1.0.0.GA)(即不使用Hibernate jar)時,偵聽器事件是否應該起作用?事件監聽器在Grails中使用MongoDB GORM插件時應該觸發嗎?

我已經有了與afterInsert,afterUpdate等域名類,但事件要麼不啓動或方法只是沒有被調用。

我在插件文檔中沒有看到這方面的具體指導。有誰知道應該發生什麼?謝謝。

+0

進一步的信息:我可以看到肯定一些*事件之前獲取調用。 beforeValidate()尤其如此。不知道爲什麼afterInsert變得沒有愛,但。 – Eli 2012-07-26 19:31:26

回答

2

回答我的問題對他人誰可能會發現它的益處:

顯然,使用的MongoDB/GORM無休眠時,GORM通過尋找你的域對象類的方法簽名找到事件偵聽器。閉包不會工作(儘管它在使用Hibernate時會起作用)。

因此,你不能使用這樣的模式:

class A { 
    int blah 
    String foo 

    def afterInsert = { ... } 
} 

相反,這樣做:

class A { 
    int blah 
    String foo 

    def afterInsert() { ... } 
} 
+0

在此處添加了JIRA:http://jira.grails.org/browse/GPMONGODB-214 – Eli 2012-07-27 21:37:01