Grails域类的newInstance(map)?

时间:2012-11-08 08:15:10

标签: grails groovy

有一个域类,其中字段id由Grails注入。使用地图实例化此类会产生id == null

def obj = DomainClass.class.newInstance(id:100, name:'Joe')
assert obj.id != null // it fails

在Grails中分配所有隐藏属性的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用DSL自定义GORM如何为数据库生成标识符。默认情况下,GORM依赖于本机数据库机制来生成ID。请查看文档customizes the way the identifier for a domain class is generated

static mapping = {
    id generator: 'assigned'
}

在分配生成器时,构造函数上的id初始化存在错误,请查看此博客文章,其中包含针对此错误的临时解决方法: Assigning ID for domain objects in Grails via constructor