在grails 2中,当使用多个数据源时,我可以指定标准应该使用哪个数据源吗?

时间:2012-08-22 23:49:41

标签: gorm criteria grails-2.0

在我的grails 2应用程序中,我在Datasources.groovy中配置了多个数据源。我的域类映射指定应该使用所有数据源

class Book {
    static mapping = { datasource 'ALL' }

对于基本的Gorm调用,我可以指定要使用的数据源。

Book.lookup.save()正确使用'查找'数据源

有没有办法指定标准应该使用哪个数据源?

我已经尝试了以下4种解决方案而没有任何运气

  1. def c = Book.lookup.createCriteria(); c.list{...

    对.list的调用抛出:java.sql.SQLException:连接已关闭

  2. def c = Book.createCriteria(); c.lookup.list{...
    没有这样的方法

  3. 注入数据源

    def dataSource_lookup

    ...

    Book.createCriteria(dataSource_lookup)
    没有这样的方法

  4. 指定标准所在的整个服务应该使用特定的数据源似乎不适用于条件,也不适用于基本的save()调用。我正在运行grails 2.1.0。

    static datasource = 'lookup'

1 个答案:

答案 0 :(得分:1)

不是一个很好的解决方案,但如果您事先访问数据源(可能在同一个休眠会话中),它确实有效。

Book.lookup.read(1)
def c = Book.lookup.createCriteria()
c.list{...