在Grails集成测试中为ID对象分配ID

Dón*_*nal 3 grails integration-testing grails-2.0

在我的Grails 2.X应用程序中,我有一个Foo域类.从集成测试中,以下两个断言都通过:

def foo2 = new Foo()
foo2.id = 2L
assertEquals 2L, foo2.id // as expected

def foo = new Foo(id: 1L)
assertNull foo.id // not expected
Run Code Online (Sandbox Code Playgroud)

在任何情况下,我都不会尝试持久保存Foo实例.为什么我能够使用点语法分配id,但是当我使用map构造函数时却不能?

dma*_*tro 5

因为默认情况下id不能绑定到域类.在定义域类之前,它不能被提及为键值,直到它被设置为bindable true域约束.