1

私がやりたいのは、ドメインを見つけて、新しいドメインを作成するか、既存のドメインを保存することです。これが私が現在作業しているコードです(このプロジェクトでは、スケルトンはパッケージ名です):

    def save() {
        Class lob = grailsApplication.getDomainClass('skeleton.'+params.lob.name)
        def instance = lob.get(params.lob.id)
        if (instance){
            params.data.each { name, value ->
                if (instance.metaClass.hasProperty(name)){
                    instance[name] = value
                }
            }
        }else{
            instance = new lob()
            params.data.each { name, value ->
                if (instance.metaClass.hasProperty(name)){
                    instance[name] = value
                }
            }
        }
    }

これは機能していないようです。誰かが解決策を手伝ってくれますか?

4

1 に答える 1

5

によって返されるオブジェクトgetDomainClassは のインスタンスですGrailsDomainClass。を呼び出すことができる実際のドメイン クラスを取得するにはget、まずそれを呼び出しgetClazzます。例えば:

Class lob = grailsApplication.getDomainClass('skeleton.'+params.lob.name).clazz

さらに、キーワードを使用して新しいインスタンスを作成するnewInstanceのではなく、クラス オブジェクトを呼び出す必要があります。new

于 2012-07-11T19:36:06.087 に答える