J'ai 2 domaines .. maître et les détails.Comment faire pour attraper l'erreur dans addToTag() [grails]
Master{
String masterName;
static hasMany=[details:Detail]
}
Detail
{
String detailName ;
static belongsTo =[master:Master];
}
J'ai la forme qui manient la sauvegarde
def save = {
.....
def master = new Master(params);
params.detailsName.eachWithIndex(dtName, index ->
def detail = new Detail();
detail.detailName = dtName;
....
master.addToDetails(detail);
}
.....
master.save(flush:true);
}
quand j'ai appelé master.save(), s'il y a des erreurs dans le détail, le maître encore les données d'économie. Je veux savoir comment annuler le maître s'il y a des erreurs dans les détails et je voudrais savoir comment suivre les erreurs dans les détails?
merci
J'ai fait une transaction, mais je ne sais pas comment savoir qu'il y a erreur/détail n'est pas valide pour être inséré (peut être le nom est vide ou la date est null etc). autant que je sache, quand le détail n'était pas valide, l'en-tête toujours inséré et le détail provoqué n'ont pas pu être sauvés. Une fois ajouté à *(), il attachera l'objet sans déclencher d'erreur. mais quand vous enregistrez() le détail ne sera pas sauvegardé s'il y a des erreurs et je ne peux pas obtenir le message d'erreur. – nightingale2k1
Vous pouvez vérifier detail.validate() et si faux vous pouvez vérifier les erreurs en utilisant detail.errors.each {log.debug it}. –