Grails域类的newInstance(映射)?

Grails域类的newInstance(映射)?,grails,groovy,Grails,Groovy,Grails注入了一个域类,其字段id。用映射实例化此类类会导致id==null: def obj = DomainClass.class.newInstance(id:100, name:'Joe') assert obj.id != null // it fails 分配Grails中所有隐藏属性的最佳实践是什么?您可以自定义GORM如何使用DSL为数据库生成标识符。默认情况下,GORM依赖本机数据库机制生成ID。请检查文档以查看 当生成器被分配时,构造函数上的id初始化有一个错误,请看这

Grails注入了一个域类,其字段
id
。用映射实例化此类类会导致
id==null

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

分配Grails中所有隐藏属性的最佳实践是什么?

您可以自定义GORM如何使用DSL为数据库生成标识符。默认情况下,GORM依赖本机数据库机制生成ID。请检查文档以查看

当生成器被分配时,构造函数上的id初始化有一个错误,请看这篇博客文章,其中有一个针对该错误的临时解决方法:
.

这不是一个bug,而是故意的。它是为了保护黑客不向更新方法发送不同的id值。同样地,
版本
元类
在默认情况下也被排除在外,以减少故意或错误地更改代码的可能性,如
thing.properties=params
。如果对您的工作流有意义,您仍然可以手动分配id。感谢您的澄清。我想说JIRA有一个bug报告。
static mapping = {
    id generator: 'assigned'
}