Grails:属性空错误

Posted

技术标签:

【中文标题】Grails:属性空错误【英文标题】:Grails: Property Null error 【发布时间】:2011-07-17 17:10:33 【问题描述】:

我有一个名为 Modulo 的域,它有一些属性和一个控制器,它有一个从模型创建对象并保存它的方法,当执行保存 shell 时显示此错误:

La propiedad [0] de la clase [1] no puede ser nulo

但如果我将约束为空设置为真,错误再次显示。我认为我不应该设置这个约束。

模型链接到一个mysql表,除了id之外的所有属性都允许为空。

我认为我在这里没有做错什么。有什么建议吗??

域:模

class Modulo 
    String nombre
    String icon
    String url




//static constraint = 
  //    url(nullable:true)
  //

  

控制器:示例

class ExampleController 
    def index =  
       def modulo = new Modulo(
         nombre:'xxx',
         icon:'xxx'
        )

        if (modulo.save())
          println 'ok'
        else
          modulo.errors.allErrors.each  println it.defaultMessage
        
    

谢谢。何塞

【问题讨论】:

何塞,默认情况下可空约束设置为 false,我看到您在问题中对约束进行了评论,真的是这样吗?您是否将 url 的可空约束设置为 true?因为如果未设置,那么保存时会出现该错误是有道理的。 好的。我执行 grails clean 但错误继续。 @Maricel 我将 nullable 设置为 true 但错误继续 【参考方案1】:

最后我解决了这个错误。这不保存,因为约束写错了。

错误代码

 static constraint = 
     url(nullable:true)
 

好代码

static constraints = 
     url(nullable:true)
 

感谢大家的回答。 :P

【讨论】:

【参考方案2】:
But if i set the constraint nullable to true, the error show

再次。我认为我不应该设置这个约束。

可空约束对我来说很好用。如果你不指定它,你肯定会得到错误,因为默认情况下 nullable=false。

请尝试开启nullabe:true,然后重启Grails。

模型链接到一个mysql表 除了 id 之外的所有属性都允许 空。

其实你并不需要一个预定义的表,但如果你需要的话,我认为最好不要在 id 字段中允许 null。

【讨论】:

Hello @HoàngLong 我将约束 nullabe 设置为 true 并重新启动服务器,但错误继续显示。

以上是关于Grails:属性空错误的主要内容,如果未能解决你的问题,请参考以下文章

Grails - 非空属性仅对并发用户引用空值或瞬态值错误

Grails - 非空属性引用空值或瞬态值

类 [1] 的 Grails 错误属性 [0] 不能为空 - 在基本 grails 应用程序上

Grails 中的 Liquibase:“空结果集,预期为一行”

response.sendError(404) 在 grails 中创建空页面

Grails 数据库迁移插件静默无法添加非空约束