何时以及为什么应该在 grails 域 class 中为 nullable or/and 空白约束?

When and why should nullable or/and blank constraints in a grails domain class?

我对 grails 有点陌生,我想清楚地了解如何在 grails 域 class 中使用 'nullable' 和 'blank' 约束。

一个例子是;

static constraints = { name nullable: true }

static constraints = { name blank: true }

static constraints = { name nullable: true, blank: true }

这些分别是什么意思,如何最好地应用它们?

嗯,首先 你应该看看 docs
第二个:
Nullable 已默认设置为 false。如果你希望某个值可以为空,那么你可以写 name nullable: true
Nullable 表示 创建对象时,该值可以留空(不输入任何内容)。 Blank - 当您创建对象参数输入的表单并且您将字段留空时,它将无错误地保存并接受空值。
长话短说 - 空白是表格接受空的。 Nullable 是为了让编码后的对象无值保存。
您还可以看到 .

默认情况下所有属性都是非空的,所以通常只有当你想允许空值时才使用nullable约束,即nullable: true.

此外,默认情况下 Grails 数据绑定会将空白字符串转换为 null,这实际上意味着默认应用 blank: false(因为空白会转换为 null,并且禁止使用 null)。

有一些理论上的情况,其中有必要明确指定 blank: false,例如如果 属性 在数据绑定后设置为空字符串。然而,这些在实践中不太可能发生,因此忽略一些边缘情况,假设默认应用 blank: false, nullable: false 是合理的。