如何使用GORM

时间:2016-05-23 13:37:19

标签: grails groovy gorm

我有一个域设置了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{
      ...
    }
  }
}

1 个答案:

答案 0 :(得分:2)

Groovy支持动态调用。相当于你的javascript示例将是这样的:

String ds = isDs1 ? 'ds1' : 'ds2'
Item."${ds}".find(id)