Je rencontre des problèmes lors de l'accès à une contrainte unique définie dans un domaine Grails. Here's an example from the official Grails documentation (légèrement modifié pour une contrainte unique):Accéder à une contrainte unique dans Grails via constrainedProperty
class User {
String firstName
String middleName
static constraints = {
firstName blank: false, nullable: false
middleName unique: true, nullable: true
}
}
Sur Grails 3.1.9:
Ce code fonctionne: User.constrainedProperties.firstName.blank
Ce code ne fonctionne pas: User.constrainedProperties.middleName.unique
Je reçois cette erreur:
groovy.lang.MissingPropertyException: No such property: unique for class: grails.validation.ConstrainedProperty
Existe-t-il un moyen de déterminer si cette contrainte est définie, similaire à vérifier si la contrainte "vide" est définie? Merci
MISE À JOUR: Voici ce que je reçois lorsque j'essaie d'utiliser le code suggéré dans les commentaires (différence entre vide et valeur nulle uniquement). hasAppliedConstraint fonctionne bien, mais pas getAppliedConstrait. Je suppose que je fais une erreur stupide quelque part?
Condition not satisfied:
User.constrainedProperties.middleName.getAppliedConstraint('unique')
| |
| null
[[email protected]'middleName'middleNamemap['nullable' -> [[email protected]], 'unique' -> [[email protected]]]]
Voir https://github.com/grails/grails-core/blob/3fa286c53d674f1e25cce95661b1ae38aa31ca3b/grails-test-suite-uber/src/test/groovy/grails/validation /ValidateableTraitSpec.groovy#L116-L150 –
La façon de procéder dépend de la version de Grails avec laquelle vous travaillez. –
Ah oui, j'aurais dû spécifier ma version Grails est 3.1.9 –