基本上我正在尝试做的是将我的一个表的名称作为字符串接收,然后从该表中搜索。到目前为止我尝试过的(两者都不起作用):
params.tableName.findById(100)
和
def tables = grailsApplication.domainClasses
def table
tables.each {
if(it.name.toString() == params.tableName) {
table = it
}
}
table.findById(100)
我意识到对我的问题的描述有点简短,主要是因为它很难解释,我希望我给出的代码示例能够弥补它,但如果它太模糊,那就让我知道,我会试着更清楚。另外,我正在Grails 2.2.5中工作,所以对这个版本有用的答案将非常受欢迎。
答案 0 :(得分:0)
我不确定这是多么明智,但以下内容对我有用:
def id = Eval.me( "your.domain.package.${params.tableName}.findById( 100 )" )
答案 1 :(得分:0)
最终结果如下:
def table = grailsApplication.getClassForName("path.to.package.${params.tableName}")
def record = table.get(100)
println record // successfully prints the record and as such I'm assuming it works