2011-11-16 33 views

回答

1

是的,你可以,但 - 從我的經驗 - 有一些條件/侷限性你應該知道。

  1. 知道這一點: Grails 2 can't login with spring security when using multiple databases

  2. 文檔http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources說,你既可以通過域映射或使用服務和靜態的「數據源」屬性數據源之間切換。

我發現域映射確實有效,但服務本身並不起作用,從我解釋文檔的方式我們也應該可以做到。

2.1在Datasources.groovy中定義數據源: 您可以聲明您希望您的域模型使用哪種數據源,這可以正常工作。同時,聲明你的域使用多個數據源,然後指定你的控制器使用的數據源: bookInstance.db1.save() 或 bookInstance.db2.save()

,或者當數據源是未知手之前,你可以這樣做:

高清DS = 「DB1」 //或將其設置爲你想要的任何東西,DB1,DB2,DB3 ... bookstance 「$ DS」 .save()

。但是,如果你想使用服務來聲明數據源,那對我來說根本不起作用。

靜態數據源=「DB1」

無論怎樣,在Grails服務這並沒有爲我工作。

2.2在默認數據庫中聲明數據源,然後在運行時注入其他數據源。 該文檔說你可以在運行時注入一個新的數據源bean。你可以,但它不會被Grails拾起。我一直無法讓Grails知道新注入的數據源bean。因此,數據源必須保持在Datasource.grooy

預申報

-

+1

我看到指向官方文檔幾個地方,但沒有足夠的反饋,我描述了兩個主要問題。 @burtbeckwith,你是否知道爲什麼在服務中聲明數據源不起作用的任何原因?此外,我正在閱讀文檔的方式,我應該能夠在調用服務之前在服務權限上設置數據源靜態屬性,對嗎? – Kyle

相關問題