如何获取grails将Id分配给旧Java对象

时间:2012-08-21 06:56:03

标签: grails gorm

我有一个java annotized域对象,我想在grails中使用,这很好,但是所有生成的模板都使用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。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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

在查看the doc之后,我怀疑mapping{} DSL是否会起作用。看起来只有constraints部分可以使用,我相信you only need @Id annotation