質問

私は、Grailsの初心者(とGroovy初心者)だ、と私はいくつかのGrailsのチュートリアルを通して働いています。新規ユーザーとして、Grailsのシェルは、私にとって本当に便利な小さなツールですが、私はそれが私のクラスやオブジェクトを参照してくださいようにする方法を見つけ出すことはできません。ここで私がしようとしているものです。

% 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のシェルは、コントローラ、サービス、およびドメインオブジェクトのすべてを見ることができたという印象の下にありました。これでまで何ですか?私はここで何かを行う必要がありますか?

私は1つの他の事を試してみました

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の使用についての答えを見ました。しかし、この約1?

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

私は間違ってこの時間を行うWhat'd?

役に立ちましたか?

解決

コンソールの代わりに、シェルを使用するには、

私は2番目のバートのアドバイス。例外に関してます:

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

あなたが明示的にトランザクションでこのコードを実行しようとすることができます:

import com.test.TestObj

TestObj.withTransaction{ status ->
    TestObj().save()
}

他のヒント

それは(良いアイデアではない)ことが可能ですので、

あなたは異なるパッケージで同じ名前を持つ2つのドメインクラスを持っているパッケージを必要とします。

2回目のセッションのために、(foo.saveなければならない)、foo.saveない。

私はコンソールを好む、それはで動作するように多くの方が簡単です。ファイル名を指定して実行「Grailsのコンソール」とSwingのアプリが起動します。それは、Springアプリケーションコンテキストで利用できる暗黙の「CTX」変数を持っているという点で、これは通常のGroovyのコンソールから少し違うのです。あなたは「ctx.getBean( 『fooService』)」

を経由してサービスや他のSpring Beanにアクセスするためにそれを使用することができます

あなたが示されているようimport com.test.TestObjことによってそれをnew com.test.TestObj()または参照する必要があります。

saveが」properyが、Grailsの実行時にドメインクラスを飾る動的な方法ではないことに注意してください。

groovy:000> foo = new com.test.TestObj();
===> com.test.TestObj : null
groovy:000> foo.save()
===> com.test.TestObj : 2
groovy:000> 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top