2012-01-16 127 views
0

这是我的用户实体..为什么我的lastlogin在数据库中不为空?我已将aLready设置为空。Grails实体约束

class Users { 


static hasMany = [farm:Farms,report:Reports,reportMessage:ReportMessages] 

String userName 
String Password 
Date LastLogin 
String userImage 

static constraints = { 
    userName (blank:false, unique:true) 
    Password (blank:false) 
    userImage (blank:false) 
    LastLogin (blank:true) 

} 

}

+0

可能是内存泄漏问题重新启动pc并再次检查代码是否正确并丢弃数据库并再次创建 – 2012-01-16 11:22:15

+1

@HelpMeToAskQuestions这是非常糟糕的建议。我会给你的怀疑的好处,并将其归因于无知而不是恶意 – 2012-01-16 11:26:29

+0

先生,我一直面临同样的问题,所以我发现这是上述可以建议我更好的解决方案,这个 – 2012-01-16 11:28:04

回答

0

是的,有一个错误。将LastLogin更改为lastLogin并解决该问题。

+0

对我来说似乎不太可能,但如果您确定,我会鼓励您在Grails bug-跟踪器,以便其他人不会有同样的问题 – 2012-01-17 09:14:24

1

如果你想LastLogin是空的,你应该使用约束

LastLogin (nullable:true) 

而不是

LastLogin (blank:true) 

为什么我lastlogin不为空的数据库?我已将aLready设置为空。

添加约束之一以上并不意味着它空白/空时,这意味着它可以空白/空。

它在数据库中不为空的原因很可能是因为您在保存Users对象之前为其分配值。

+0

我试过可空,但它不起作用。 – user2514963 2012-01-16 11:33:04

+0

@ user974459然后你应该创建一个测试,重现可空行为不工作,并在Grails bug跟踪器中打开一个bug(附带测试)。不过,我99.999%肯定可以为空,并且同样确定问题出现在代码中的某处,而不是Grails错误。 – 2012-01-16 11:36:59

+0

但它是不能为空的数据库列 – user2514963 2012-01-16 11:38:42