繁体   English   中英

Grails找到域,然后将其保存

[英]Grails find Domain and then Save it

我要做的是找到一个域,然后创建一个新域或保存先前存在的域。 这是我当前正在使用的代码(在此项目中,skeleton是程序包名称):

    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
                }
            }
        }
    }

这似乎不起作用。 谁能帮我解决这个问题?

getDomainClass返回的对象是GrailsDomainClass的实例。 要获得实际的域类上,你可以调用get ,第一个电话getClazz就可以了。 例如:

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

另外,您必须在类对象上调用newInstance ,而不是使用new关键字创建新实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM