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,因此将非常感谢适用于此版本的答案。

我不确定这有多明智,但以下内容对我有用:

def id = Eval.me( "your.domain.package.${params.tableName}.findById( 100 )" )

最终解决问题的方法如下:

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

最新更新