什么是最好的/最简单的方法来获取与给定的GORM域对象相关联的持久性属性的列表?我可以获得所有属性的列表,但此列表包含非持久字段,如类和约束。 目前我使用这个,并使用我创
目前我使用这个,并使用我创建的列表过滤出nonPersistent属性的列表:
def nonPersistent = ["log", "class", "constraints", "properties", "errors", "mapping", "metaClass"] def newMap = [:] domainObject.getProperties().each { property -> if (!nonPersistent.contains(property.key)) { newMap.put property.key, property.value } }
似乎有必要有一个更好的方法来获得持久性属性。
尝试这个:import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass ... def d = new DefaultGrailsDomainClass(YourDomain.class) d.persistentProperties
这里有一个指向Grails API for GrailsDomainClass的链接(它是一个链接到一个旧版本;我经过一些快速搜索后找不到一个新的)。它有一个getPersistentProperties()(在上面的代码片段中使用)。您可以遍历API文档,查看其他可能对您有用的方法。
如果你想要一个例子,做一个grails install-templates,然后看看src / templates / scaffolding / create.gsp。有一个块,在那里它迭代持久性域属性。