我正在尝试在遗留数据库之上构建一个 grails (2.1.0) 应用程序。它有很多表,我非常想只使用动态脚手架。问题是一些表有一个字符串作为主键,但是 src/templates/scaffolding/Controller.groovy 中的模板代码例如 show 是
def show(Long id) {
def ${propertyName} = ${className}.get(id)
if (!${propertyName}) {
flash.message = message(code: 'default.not.found.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), id])
redirect(action: "list")
return
}
[${propertyName}: ${propertyName}]
}
对于字符串键,这似乎将字符串变为 null,并且 get 失败并出现错误$Domain not found with id null
。
如果我运行生成控制器并将签名更改为def show(String id)
,它将按预期工作。
那么,有没有办法在“动态脚手架时间”检查域类并相应地编写方法?