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

标签 grails grails-orm

我的 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()
}

不幸的是,当我尝试这样做时遇到错误。 “应用查询转换时发生 fatal error :null 1 错误”。

关于如何实现这一目标有什么想法吗?或者我只是被 if/switch block 困住了?

最佳答案

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

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

出于某种原因,如果你这样调用它,它就会起作用。

关于Grails 2 - 如何动态调用多个数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534238/

相关文章:

json - Grails JSON编码

grails - 如何在Grails Controller 上的Bean实例中 “persist in memory”更改

grails - 域构造函数上缺少 transient 属性(带有映射参数)

grails - removeFrom* 方法应该从数据库中删除子项还是应该只删除父子关系?

hibernate - withTransaction 并保存大量对象?

grails - Grails:如何查找域属性没有任何错误

hibernate - 优化:渴望获取基域类实例

java.lang.NullPointerException : Cannot get property 'grailsResourceProcessor' on null object

grails - 无论如何要在 Grails 中执行 "deep save"吗?

go - 何时是使用 GORM 运行 Automigrate 的最佳时机