Grails 验证约束importFrom引发异常
在尝试从使用共享约束的域类导入约束时,我得到以下示例。 在绑定阶段发生异常 例外情况:Grails 验证约束importFrom引发异常,grails,grails3,grails3.2.0,Grails,Grails3,Grails3.2.0,在尝试从使用共享约束的域类导入约束时,我得到以下示例。 在绑定阶段发生异常 例外情况: Property [somePackage.User.email] references shared constraint [email:null], which doesn't exist! 域: class User { String email static constraints = { email(shared: 'email', unique: true) }
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
有什么想法吗?如果您将约束定义为共享,那么应该在grails app/conf/Config.groovy的grails.gorm.default.constraints中定义它。让我猜“电子邮件”没有定义,所以你得到这个例外 只需删除“共享:'电子邮件',”从用户和导入将工作正常
有用链接:经过一些调试后,似乎不支持这种情况。我放弃了使用共享约束,而选择了“importFrom”,如果还有其他字段,您仍然可以使用importFrom并排除导致问题的特定字段。