2012-03-15 4 views
1

Class.forName('com.mypack.MyDomain').newInstance() を使用して、修飾名からgrailsドメインのインスタンスを作成しようとしています。 しかし、それを投げるClassNotFoundException. .forName('')は、クラスがGroovyクラスではなくJavaクラスであると予想しているためです。 これをgrailsで動作させるには、クラス名からString型でドメインオブジェクトを作成する別の方法があります。クラス名からgrailsドメインクラスを作成する

おかげ Priyank

答えて

8

別のルートを試してみてください:

GrailsDomainClass dc = grailsApplication.getDomainClass('com.mypack.MyDomain') 
def newDomainObject = dc.clazz.newInstance() 
+0

ドメインのIDを渡して特定のドメインオブジェクトをデータベーステーブルから取得するにはどうすればいいですか?そうでなければ私はそうするでしょう、User user = User.get(id); –

+0

私はnewDomainObject.get(id)が動作するはずだと思います.. –

+0

Afaik、 'dc.get(id)'は必要なものにする必要があります –

1

行うことであろうしようとする

GrailsClass clazz = grailsApplication.getArtefactByLogicalPropertyName(DomainClassArtefactHandler.TYPE, className) 
clazz.clazz.newInstance() 
+0

をだから、もう一度、私はタイプGrailsClassのオブジェクトを取得しますか? –

+0

いいえ、試してみてください - あなたのドメインクラスのタイプのオブジェクトになります。 getArtefactByLogicalPropertyNameに渡したクラス名 –

関連する問題