2011-11-15 49 views
0

我在生產環境中使用oracle數據庫,因爲我在gorm中使用id生成器的序列映射。如何在每個環境中禁用gorm.mapping id生成

但現在我想禁用所有域的映射,只有在我使用hsqldb文件的開發中。

這是爲了不必爲每個開發人員的PC安裝oracle。

我曾在一個引導這個tryied:

import grails.util.GrailsUtil; 

class DevBootStrap { 

    def grailsApplication 

    def init = { servletContext -> 
     if(GrailsUtil.environment in ["development"]){ 
      grailsApplication.domainClasses.each { domainClass -> 
       domainClass.metaClass.mapping = null 
      } 
     } 
    } 

    def destroy = { 

    } 

} 

但它不工作。

我也試圖與

grails.gorm.default.mapping = null 

而且也不起作用。

我想也許在_Events。但我不知道這個事件。

你可以給我任何指針嗎?

問候

回答

0

我想這可能工作,但是你需要添加.clazz,否則你在錯誤的類玩耍。

grailsApplication.domainClasses.each { domainClass -> 
    domainClass.clazz.metaClass.mapping = null 
} 

我不知道,在時間點是否,當你改變的映射已經夠早的。

0

我發現您可以通過Environment.current訪問域類映射中的當前環境。因此,在您的每個域類中,您可以嘗試添加:

static mapping = { 
    if (Environment.current != Environment.DEVELOPMENT) { 
     //define mapping 
    } 
}