3

在我的 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

在这两种情况下,我都不会尝试持久化Foo实例。为什么我可以使用点语法分配 id,但在使用 map 构造函数时却不能?

4

1 回答 1

5

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

于 2013-07-10T12:01:00.907 回答