空白和空约束之间有什么区别?
我有以下课程
class Task {
String title
String notes
TekUser assignedTo
Date dueDate
TekEvent event
static constraints = {
title blank:false
notes blank: true , maxSize: 5000
assignedTo nullable:true
dueDate nullable:true
}
static belongsTo = TekEvent
}
并且即使我指定了notes blank : true
空白有什么影响:真的有吗?
答案 0 :(得分:14)
blank:true
表示该字段接受空字符串或仅由空格组成的字符串作为有效值。例如:""
," "
nullable:true
表示该字段接受null
作为有效值它们可以一起使用。例如:
title blank:false, nullable: true
答案 1 :(得分:6)
虽然aruizca的答案是正确和描述性的,但我在阅读本书时发现了这一点:" 编程Grails "作者:Burt Beckwith。
空白与空缺 在许多情况下,空字符串和null是 等价 - 没有设定值。但是来自网络的HTTP提交 浏览器POST请求为没有值的输入发送空字符串。 非HTTP数据不会出现这种情况,例如来自其他数据 外部客户端,如Web服务或测试期间,所以转换 HTTP层的空白空白将有助于简化验证。而 我们在这里,我们也可以修剪提交的额外空格 值。
这可能与您的问题无关。 Aruizca的答案就是您所需要的,但这可以是关于Blanks和Nulls的其他信息。
答案 2 :(得分:1)
另一个答案都是正确的,但要解决你的问题:
创建的mysql表将注释设置为非null,即使我 指定的注释空白:true
空白有什么影响:真的有吗?
blank: false
保护在该字段上设置的空值(例如"",""等)。这与mysql上具有约束NOT NULL
的字段无关。发生这种情况是因为Grails在每个字段上限制默认到nullable: false
,除非您明确将其设置为nullable: true
。