0

我有一个要在 grails 中使用的 java 带注释的域对象,它工作正常,但是所有生成的模板都用Id作主键。我试图XxxConstraints.groovy在与我的域对象相同的包中创建一个文件,并添加

mapping = { 
    id type:'assigned', name:<name of java field>, type: string 
} 

但这似乎不起作用。

我在尝试渲染 gsp 时遇到的错误是"class XYZ does not contain field id"

顺便说一句,我使用的是 grails 2.1.0。

我在这里先向您的帮助表示感谢。

4

1 回答 1

0

如果您在谈论脚手架视图,它们只是具有id硬编码的字段,例如:(<g:hiddenField name="id" value="\${${propertyName}?.id}" />来自 edit.gsp 的示例)。

只需手动修改您的 GSP 即可使用您的关键字段。

如果它不止一个类并且您不想生成所有视图,您可以将模板安装到您的项目源中grails install-templates并修改它们以使用您的 PK 字段。也许 Java 类的 Groovy 包装器将具有ident()方法,但不确定。

在查看了文档之后,我怀疑mapping{}DSL 是否会起作用。看起来只有constraints部分可以工作,我相信你只需要@Idannotation

于 2012-08-21T18:43:40.870 回答