У меня есть класс Report
, который можно проверить, добавив его в свойство grails.validateable.classes
файла Config.groovy:
class Report {
/* fields */
Product product
static constraints = {
product nullable: true, validator: { val ->
if(val && val.quantity > 0) {
return (val.code && val.locations.size() > 0)
}
}
}
}
class Product {
BigDecimal quantity
String code
List<Location> locations
}
При этом я пытаюсь проверить Report
, вызвав report.validate()
, однако validate
всегда возвращает true. Я попытался сделать собственный валидатор:
...
product validator: { val ->
return false
}
так что вызов validate
для Report
всегда возвращает false, но по-прежнему возвращает true, что делает экземпляр действительным. Насколько я могу судить, пользовательские валидаторы для классов, сделанных Validateable, не вызываются при вызове validate
.
Это известная ошибка? Я нигде не могу найти ссылку, если она есть. Могу ли я использовать пользовательские валидаторы для классов, которые сделаны Validateable? Или что-то не так с моим кодом?
Изменить: исправлена опечатка. Должно быть grails.validateable.classes
вместо grails.validateable.class
grails.validateable.class
(пропущеноes
) есть опечатка? В Config.groovy это что-то вродеgrails.validateable.classes = [com.mycompany.myapp.User, com.mycompany.dto.Account]
. - person coderLMN   schedule 24.01.2013