2009-10-29 3 views
0

Il est classe de domaine avec la clé naturelle définie comme ci-dessouscomment valider les champs de classe de domaine pendant la mise à jour dans Grails

class InterestGroup { 
String intGrp 
String name 

static constraints = { 
    intGrp(blank: false, maxSize: 4, unique: true) 
    name(blank: false, minSize: 10, maxSize: 50) 
} 

static mapping = { 
    id generator: "assigned", name: "intGrp", type: 'string' 
} 

String toString() { "${intGrp}"} 
} 

je tente de modifier un échafaudage standard pour rendre possibles les changements de champ Nom. Dans le code standard, la méthode save() est appelée et elle vérifie tout le champ, et bien sûr l'enregistrement n'a pas pu être mis à jour car l'enregistrement avec la même clé existe. Lorsque j'affecte juste une valeur de champ

interestGroupInstance.name = params?.name 

le nom est mis à jour mais pas vérifié par rapport à la classe de domaine. Quelle est la meilleure façon de réaliser un fonctionnement CRUD avec des tables basées sur des clés naturelles? Cordialement Krzysiek

Répondre

0

Je ne pense pas que je vous comprends. Qu'essayez-vous de faire? Vous essayez de mettre à jour le nom de votre groupe et il ne semble pas faire de validation?

Le documentaion de référence dit: « La méthode de sauvegarde informe le contexte de persistance que l'instance doit être enregistré ou mis à jourLa méthode d'enregistrement retourne null si la validation n'a pas et l'instance n'a pas été enregistrée et l'instance elle-même en cas de succès. ". Il devrait donc appeler des méthodes de validation lorsque vous appelez save methos sur votre objet de classe de domaine.

Pourriez-vous s'il vous plaît poster un exemple?

Questions connexes