Soy un novato de los griales (y un principiante maravilloso), y estoy trabajando en algunos tutoriales de grails. Como nuevo usuario, el shell de Grails es una pequeña herramienta realmente útil para mí, pero no puedo entender cómo hacer que vea mis clases y objetos. Esto es lo que estoy tratando:Concha de Grails que no ve los objetos de dominio
% 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
Yo tenía la impresión de que la cáscara griales podía ver todos los controladores, servicios y objetos de dominio. ¿Qué pasa con esto? ¿Debo hacer algo más aquí?
he intentado otra cosa:
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
¿Qué estoy haciendo mal?
EDITAR: Bien, vi las respuestas sobre el uso del nombre completo y también el uso de .save()
en lugar de .save
. Pero, ¿y este?
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
¿Qué hice mal esta vez?
Sí, withTransaction funciona perfectamente. Me pregunto por qué necesito agregar eso. Los ejemplos en línea no parecen mencionarlo. –
No debería necesitar agregar eso, pero pensé que podría resolver su problema. AL ejecutar su código dentro de una transacción, forzará la creación de una sesión de hibernación (que de otro modo faltaría). –