Grails 2 - 如何动态调用多个数据源

时间:2012-05-10 12:41:42

标签: grails gorm

我的Grails应用程序(Grails 2.0.3)中有两个命名数据源......

dataSource_a {
   // ...
}

dataSource_b {
   // ...
}

我希望能够根据某种参数动态更改我正在访问的数据源。我可以做这样的事情......

def findPeople(datasource) {
    if (datasource == 'a') {
        return Person.a.list()
    } else if (datasource == 'b') {
        return Person.b.list()
    }
}

我真的希望能做的事情是这样的......

def findPeople(datasource) {
    return Person."$datasource".list()
}

不幸的是,当我尝试这样做时,我收到了一个错误。 “发生致命错误应用查询转换:null 1错误”。

有关如何实现这一目标的任何想法?或者我只是坚持使用if / switch块?

1 个答案:

答案 0 :(得分:4)

我明白了,这就是你必须要做的事情。

def findPeople(datasource) {
    def p = People.class
    p."${datasource}".list()
}

出于某种原因,如果你这样称呼它,它就可以了。