У меня возникают проблемы с доступом к уникальному ограничению, определенному в домене Grails. Here's an example from the official Grails documentation (немного отредактирован, чтобы иметь уникальное ограничение):Доступ к уникальному ограничению в Grails через constrainedProperty
class User {
String firstName
String middleName
static constraints = {
firstName blank: false, nullable: false
middleName unique: true, nullable: true
}
}
На Grails 3.1.9:
Этот код работает: User.constrainedProperties.firstName.blank
Этот код не работает: User.constrainedProperties.middleName.unique
Я получаю эта ошибка:
groovy.lang.MissingPropertyException: No such property: unique for class: grails.validation.ConstrainedProperty
Есть ли способ выяснить, установлено ли это ограничение, аналогично проверке, установлено ли «пустое» ограничение? Спасибо
UPDATE: Вот что я получаю, когда пытаюсь использовать код, предложенный в комментариях (пустая vs с нулевым значением). hasAppliedConstraint работает нормально, но getAppliedConstrait этого не делает. Я предполагаю, что я что-то делаю глупой ошибкой?
Condition not satisfied:
User.constrainedProperties.middleName.getAppliedConstraint('unique')
| |
| null
[[email protected]'middleName'middleNamemap['nullable' -> [[email protected]], 'unique' -> [[email protected]]]]
См https://github.com/grails/grails-core/blob/3fa286c53d674f1e25cce95661b1ae38aa31ca3b/grails-test-suite-uber/src/test/groovy/grails/validation /ValidateableTraitSpec.groovy#L116-L150 –
Способ сделать это будет зависеть от того, с какой версией Grails вы работаете. –
Ах да, я должен был указать мою версию Grails 3.1.9 –