Ограничения проверки importFrom создает исключение
Я получаю следующее исключение при попытке импортировать ограничения из класса домена, который использует общее ограничение. Исключение происходит во время фазы связывания
Исключение:
Property [somePackage.User.email] references shared constraint [email:null], which doesn't exist!
Домен:
class User {
String email
static constraints = {
email(shared: 'email', unique: true)
}
команда
class UpdateClientCommand {
String email
static constraints = {
importFrom User
}
}
Трассировки стека:
Property [clearhub.User.email] references shared constraint [email:null], which doesn't exist!. Stacktrace follows:
Caused by: org.grails.core.exceptions.GrailsConfigurationException: Property [mypackage.User.email] references shared constraint [email:null], which doesn't exist!
at org.grails.validation.DefaultConstraintEvaluator.applySharedConstraints(DefaultConstraintEvaluator.java:287)
at org.grails.validation.DefaultConstraintEvaluator.evaluateConstraintsMap(DefaultConstraintEvaluator.java:245)
at org.grails.validation.DefaultConstraintEvaluator.evaluateConstraints(DefaultConstraintEvaluator.java:132)
at org.grails.validation.DefaultConstraintEvaluator.evaluateConstraints(DefaultConstraintEvaluator.java:119)
at org.grails.validation.DefaultConstraintEvaluator.evaluate(DefaultConstraintEvaluator.java:80)
at org.grails.validation.ConstrainedPropertyBuilder.handleImportFrom(ConstrainedPropertyBuilder.java:173)
at org.grails.validation.ConstrainedPropertyBuilder.createNode(ConstrainedPropertyBuilder.java:165)
at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:101)
at org.grails.validation.ConstrainedPropertyBuilder.doInvokeMethod(ConstrainedPropertyBuilder.java:72)
at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:67)
at mypackage.UpdateClientCommand$__clinit__closure1.doCall(ClientController.groovy:47)
at org.grails.validation.DefaultConstraintEvaluator.evaluateConstraintsMap(DefaultConstraintEvaluator.java:240)
at org.grails.validation.DefaultConstraintEvaluator.evaluateConstraints(DefaultConstraintEvaluator.java:144)
at org.grails.validation.DefaultConstraintEvaluator.evaluate(DefaultConstraintEvaluator.java:92)
at grails.validation.Validateable$Trait$Helper.validate(Validateable.groovy:149)
at grails.validation.Validateable$Trait$Helper.validate(Validateable.groovy:82)
... 37 common frames omitted
Есть идеи?
1 ответ
Если вы определяете ограничение как общее - оно должно быть определено в grails.gorm.default.constraints grails-app / conf / Config.groovy. Позвольте мне предположить, что "электронная почта" там не определена, поэтому вы получаете это исключение?
Просто удалите "shared: 'email'" из User, и импорт будет работать нормально.
Полезная ссылка: http://mrhaki.blogspot.com.by/2014/03/grails-goodness-combining-constraints.html