我正在尝试将 Grails 2.3.7 项目升级到 Grails 3.2.3。在 2.3.7 中,我使用了自定义约束并将它们注册到 /conf/Config.groovy 中,使用:
org.codehaus.groovy.grails.validation.ConstrainedProperty.registerNewConstraint('description', my.validation.DescriptionConstraint)
然后我可以在域中使用这样的东西:
static constraints = {
approvedDate(description: '>= applyDate')
}
但是,在 Grails 3.2.3 中,当我在 /conf/application.groovy 中输入上述命令(并从包名称中删除 org.codehaus.groovy)时,出现以下错误:
Error occurred running Grails CLI: No signature of method: groovy.util.ConfigObject.registerNewConstraint() is applicable for argument types: (groovy.util.ConfigObject, groovy.util.ConfigObject) values: [[:], [DESCRIPTION_CONSTRAINT:[:]]]
我注意到 Grails 3 中的验证类有所改变。但是,使用 Grails-validation 中的约束类仍然会出现相同的错误。
在 Grails 3 之前,我发现的所有验证插件都早已被废弃。而且我在 Grails 3.2 中找不到任何用于注册新约束的文档。