我知道我可以使用以下方法创建一个类: 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)
答案 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()
//有效!
...享受