我们在 Grails 2.4.3 应用程序(从 2.3.8 迁移)中有一个这样的类:
@Validateable
class Foo {
Integer noDefault;
Integer withDefault = 1;
static constraints = {
noDefault(nullable:false)
withDefault(nullable:false)
}
}
此类正在使用这样的 Map 在复杂的配置机制中实例化:
[
noDefault: 0,
withDefault: 2
]
(实际上 Map 是一个巨大的 Map 的一部分,但类构造函数看到这个小的。)以前,如果我们从配置映射中省略 withDefault 条目,使用不为 null 的默认值,则该类可以工作。然而,在 Grails 2.4.3 中,它告诉我这个字段不能为空。我可以通过让它在约束中为空来修复它,但它允许将显式值设置为空(并覆盖默认值),这会在操作期间导致问题。
您是否知道一些解决方法,它保留了语义和正确的操作?
提前感谢,最好的问候:Balázs