Grails - 动态分配表以进行搜索

时间:2018-03-16 10:00:56

标签: grails

基本上我正在尝试做的是将我的一个表的名称作为字符串接收,然后从该表中搜索。到目前为止我尝试过的(两者都不起作用):

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中工作,所以对这个版本有用的答案将非常受欢迎。

2 个答案:

答案 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