grails控制台和创建/测试类

grails控制台和创建/测试类,grails,Grails,我知道我可以使用以下方法创建一个类: grails创建域类手册 这将在我的项目中创建一个类文件,然后我可以通过控制台访问它 我的问题是“如何在控制台中创建一个类并使用该类保存()?” 如果在控制台中键入以下内容,则会出现错误: class Tree { String name Date dateCreated } def tree = new Tree(name:'oak').save() 我得到的错误是: Exception thrown groo

我知道我可以使用以下方法创建一个类: grails创建域类手册

这将在我的项目中创建一个类文件,然后我可以通过控制台访问它

我的问题是“如何在控制台中创建一个类并使用该类保存()?”

如果在控制台中键入以下内容,则会出现错误:

  class Tree {
    String name
    Date dateCreated
  }

  def tree = new Tree(name:'oak').save()
我得到的错误是:

   Exception thrown

   groovy.lang.MissingMethodException: No signature of method: 
       Tree.save() is applicable for argument types: () values: []
   Possible solutions: wait(), any(), wait(long), each(groovy.lang.Closure),
        sleep(long), use([Ljava.lang.Object;)

    at ConsoleScript6.run(ConsoleScript6:6)

这是不可能的。您刚刚创建了一个普通类,控制台为您编译并使其可用,但无法将其转换为域类并为其提供GORM行为


域类需要位于grails app/Domain文件夹中,或者也可以是使用Hibernate hbm.xml文件或注释映射的类。

这不是真的,您可以直接从grails控制台测试域类——只需使用“import package.Domain class name”启动控制台脚本即可

如果在包测试中有域类:

class A {
String testStr
}
然后创建控制台脚本,如下所示:

import test.A
def t = new A(testStr:"blah").save()
//工作


通过控制台享受…

你是说Groovy控制台吗?如果是这样的话,那你就有坏消息了…:-(羞耻。我想要一个快速且肮脏的测试区域来使用,而无需创建类,然后我就必须整理这些类。我知道我可以做到,但这不是我所要求的。我问的是我是否可以在控制台中创建域类,所以在保证之后不会留下任何混乱的情况下进行真正的原型设计。同意,这很好,我已经同意了grails的交互控制台相对快速(即域类在代码更改时快速刷新),因此您可以进行原型化,只是比您(和其他所有人)希望的要慢。