gpt4 book ai didi

Grails shell 看不到域对象

转载 作者:行者123 更新时间:2023-12-04 15:16:18 24 4
gpt4 key购买 nike

我是 grails 新手(也是一个 groovy 新手),我正在学习一些 grails 教程。作为一个新用户,grails shell 对我来说是一个非常有用的小工具,但我不知道如何让它看到我的类和对象。这是我正在尝试的:

% grails create-app test
% cd test
% grails create-domain-class com.test.TestObj
% grails shell
groovy:000> new TestObj()
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_evaluate: 2: unable to resolve class TestObj

我的印象是 grails shell 可以看到所有的 Controller 、服务和域对象。这是怎么回事?我需要在这里做其他事情吗?

我尝试了另一件事:
groovy:000> foo = new com.test.TestObj();
===> com.test.TestObj : null
groovy:000> foo.save
ERROR groovy.lang.MissingPropertyException: No such property: save for class: com.test.TestObj

我究竟做错了什么?

编辑:好的,我看到了关于使用全名和使用 .save() 的答案而不是 .save .但是这个呢?
groovy:000> new com.test.TestObj().save()
ERROR org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

这次我做错了什么?

最佳答案

您需要该包,因为在不同的包中可能(但不是一个好主意)有两个同名的域类。

对于第二个 session ,它应该是 foo.save(),而不是 foo.save。

我更喜欢控制台,它更容易使用。运行“grails 控制台”,Swing 应用程序将启动。它与常规的 Groovy 控制台略有不同,因为它有一个隐式的 'ctx' 变量可用,即 Spring 应用程序上下文。您可以使用它通过“ctx.getBean('fooService')”访问服务和其他 Spring bean

关于Grails shell 看不到域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2040055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com