有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Grails 4上配置域封送器。十、

我正在尝试修复Grails 3的升级。x域封送器到Grails 4。x、 请看下面我使用的代码

import org.grails.datastore.mapping.model.PersistentEntity

class DomainClassMarshaller {
     public static final List<String> appendFields = ['id']

    static Closure appendMarshaller(String clazz, List<String> fieldsToInclude) {
        def grailsDomainClassMappingContext
        return { domainItem ->
            def domain = grailsDomainClassMappingContext.getPersistentEntity(clazz)
            def results = [:]
            domain.persistentProperties.each { field ->
                results[field.name] = domainItem[field.name]
            }
            def fields = []
            fields.addAll(appendFields)
            fields.addAll(fieldsToInclude)
            //println "size:" +fields.size();
            fields.each { name ->
                results[name] = domainItem[name]
                //println "name :"+name+" value:"+domainItem[name];
            }
            return results
        }
    }

    static Closure limitIncludes(Class clazz, List<String> fieldsToInclude) {
        def grailsDomainClassMappingContext
        return { domainItem ->
            def domain = grailsDomainClassMappingContext.getPersistentEntity(clazz)
            def results = [:]
            def fields = []
            fields.addAll(appendFields)
            fields.addAll(fieldsToInclude)
            fields.each { name ->
                results[name] = domainItem[name]
            }
            return results
        }
    }

    static Closure excludes(Class clazz, List<String> fieldsToExclude = []) {
        def grailsDomainClassMappingContext
        return { domainItem ->
            def domain = grailsDomainClassMappingContext.getPersistentEntity(clazz)

            def results = [:]
            domain.persistentProperties.each { field ->
                if (!(field.name in fieldsToExclude))
                    results[field.name] = domainItem[field.name]
            }
            appendFields.each { name ->
                results[name] = domainItem[name]
            }
            return results
        }
    }
}

由于某种原因,我不喜欢这种新的方法,我一直在找工作

Caused by: java.lang.NullPointerException: Cannot invoke method getPersistentEntity() on null object

我不知道您是否有任何建议,非常感谢


共 (0) 个答案