无法在Grails中创建新的域对象

无法在Grails中创建新的域对象,grails,gorm,Grails,Gorm,大家好,我对grails还是很陌生,我还不知道为什么会发生这种情况 我有一个域类: package scheduler class Client { String name static constraints = {} } 以及控制器: package scheduler class AdminController { def create() { def client = new Client(name:"John") println client }

大家好,我对grails还是很陌生,我还不知道为什么会发生这种情况

我有一个域类:

package scheduler

class Client {
  String name

  static constraints = {}
}
以及控制器:

package scheduler
class AdminController {
  def create() {
    def client = new Client(name:"John")
    println client
  }
}
目前,我的客户端总是为空。最初,上述内容在域类方面稍微复杂一些,但我系统地将其简化,以查看是否存在问题。我仍然无法使上述功能正常工作

输出总是 scheduler.Client:null


如果我需要提供更多信息,请告诉我

它不是null,这只是Grails添加的
toString
方法的默认输出。它打印类名和id。由于您尚未保存实例,因此id为空。如果实例为null,则输出将是
null
,而不是
scheduler.Client:null

如果要查看实例中的数据,请使用Groovy
dump()
方法,例如

def client = new Client(name:"John")
println client.dump()
您还可以添加一个
toString
方法,该方法包括
name
属性,例如

package scheduler

class Client {
   String name

   String toString() { name }
}

它不是null,这只是Grails添加的
toString
方法的默认输出。它打印类名和id。由于您尚未保存实例,因此id为空。如果实例为null,则输出将是
null
,而不是
scheduler.Client:null

如果要查看实例中的数据,请使用Groovy
dump()
方法,例如

def client = new Client(name:"John")
println client.dump()
您还可以添加一个
toString
方法,该方法包括
name
属性,例如

package scheduler

class Client {
   String name

   String toString() { name }
}

谢谢你澄清这一点。我更习惯于rails,无法找到一个很好的解释来解释为什么输出是这样的。谢谢你澄清这一点。我更习惯于rails,无法很好地解释为什么输出是这样的。