/ / Grails 3 Доступ до обмежень домену Grails під час виконання - grails, gorm, grails-3.0

Грали 3 Доступ до обмежень домену гралів у режимі виконання - grails, gorm, grails-3.0

Для доступу до обмежень grails 2 у моєму gsp, подібному до цього:

${MyDomainClass.constraints.myProperty.inList.collect{it.name()}}

В Grails 3 він більше не працює

Відповіді:

1 для відповіді № 1

У домені Grails 3.0 і об'єктах команди використовується ознака grails.validation.Validateable (Джерело можна знайти тут). Ця ознака дає вам доступ до обмежень, надаючи наступний метод.

static Map<String, ConstrainedProperty> getConstraintsMap();

Щоб отримати доступ до обмежень, ви називаєте цей метод вашим доменом або об'єктом команди. Наступний приклад звертається до nullable обмеження на властивість доменних об'єктів викликається day.

domainObject.getConstraintsMap()["day"]["nullable"]

0 для відповіді № 2

Цей шлях, який був дійсний у Grails 2, все ще працює ...

grailsApplication.getArtefact("Domain",
"MyDomainClass").getConstrainedProperties().myProperty.inList.collect{it.name()}

див. API GrailsDomainClass