我想检查的是一个字符串,其中包含我的一个实体类的有效属性的名称。
我已经找到了几个键,但最后我还是无法让它们工作,甚至不确定这样做的最佳做法。
提前致谢
答案 0 :(得分:1)
每个Grails域对象都有一个注入domainClass
属性,该属性公开persistentProperties
列表。您可以通过以下方式访问属性列表:
def o = new MyDomain()
o.domainClass.persistentProperties
您还可以从Spring应用程序上下文中检索此列表,这样就不需要域类实例。在为每个域类创建的Spring bean(每个域有四个bean)中,有一个具有域类的全名,后缀为{{DomainClass}}。假设已经注入了grailsApplication:
grailsApplication.mainContext.getBean("MyDomainDomainClass").persistentProperties
在persistentProperties
列表中,您可以搜索具有给定名称的属性,如下所示:
persistentProperties.find { it.name == nameToSearchFor }
答案 1 :(得分:0)
最后我决定选择
MyClass.metaClass.properties.find { it.name == params.searchedColName }
我认为这比@Andrew von Dollen提议的解决方案要好一些,因为我避免玩弹簧环境......觉得这样更加时髦。