3

Grails アプリ (Grails 2.0.3) に 2 つの名前付きデータ ソースがあります...

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 に答える