3

我的 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 块?

4

1 回答 1

4

我想通了,这就是你必须这样做的方式。

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

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

于 2012-05-10T15:10:45.330 回答