【问题标题】:Grails: Property Null errorGrails:属性空错误
【发布时间】: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 但错误继续

标签: grails grails-domain-class grails-controller grails-validation grails-constraints


【解决方案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 并重新启动服务器,但错误继续显示。
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多