Каждый объект Grails домена имеет впрыскивается domainClass
свойство, которое выставляет persistentProperties
список. Вы можете получить доступ к списку свойств таким образом:
def o = new MyDomain()
o.domainClass.persistentProperties
Вы также можете получить этот список из контекста Spring приложения, что позволяет избежать необходимости экземпляра класса домена. Среди компонентов Spring, созданных для каждого класса домена (четыре компонента для каждого домена), есть тот, который имеет полное имя вашего класса домена с суффиксом {{DomainClass}}. Предполагая, что grailsApplication был введен:
grailsApplication.mainContext.getBean("MyDomainDomainClass").persistentProperties
В persistentProperties
списке, вы можете искать недвижимость с указанным именем следующим образом:
persistentProperties.find { it.name == nameToSearchFor }
Я думаю, что список не лучшая структура для поиска ... возможно, мне нужно перебрать все элементы, проверяющие имя? ... карта была бы гораздо более дружелюбной. Документация утверждает, что [Entity] .properties отвечает Map, но я думаю, что это неправильно или что-то, потому что я не получаю эту карту. – Rafael
Также вы используете экземпляр, в то время как я предпочитаю использовать класс ... есть ли что-то для этой проверки с использованием метакласса или что-то вроде этого? – Rafael
См. Отредактированный ответ –