grails控制台和创建/测试类

时间:2010-10-05 09:28:22

标签: grails

我知道我可以使用以下方法创建一个类:    grails create-domain-class book

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

我的问题是'如何在控制台中创建一个类,然后我可以保存()?'

如果我在控制台中输入以下内容,则会收到错误消息:

  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)

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

事实并非如此,您可以直接从Grails控制台测试域类 - 只需使用“import package.domain-class-name”启动控制台脚本

如果您在包测试中有域类:

class A {
String testStr
}

然后像这样创建控制台脚本:

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

//有效!

...享受