我的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块?
答案 0 :(得分:4)
我明白了,这就是你必须要做的事情。
def findPeople(datasource) {
def p = People.class
p."${datasource}".list()
}
出于某种原因,如果你这样称呼它,它就可以了。