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 で新しい制約を登録するためのドキュメントが見つかりません。