我有一个域设置了n个数据源(我们在这里称之为2)。我目前必须以这种方式访问查找对象......
// DS1
Item.find(id)
// DS2
Item.ds2.find(id);
这在一个小的逻辑函数上运行正常,但是当有很多查找和保存时,它会创建一个非常干燥的环境......
if(isDs1){
Item.find(id)
...
}
else{
Item.ds.find(id)
...
}
我在JS中想到这样的事情......
String ds = isDs1 ? 'ds1' : 'ds2'
Item[ds].find(id)
但是在Groovy(?)
中这是不可能的这有另一种方式以相当干的方式做到这一点吗?
更新
对于那些困惑我的DataSource.groovy看起来像这样......
environments {
development {
datasource_ds1{
...
}
datasource_ds2{
...
}
}
}
答案 0 :(得分:2)
Groovy支持动态调用。相当于你的javascript示例将是这样的:
String ds = isDs1 ? 'ds1' : 'ds2'
Item."${ds}".find(id)