Pourquoi est-GORM pas l'économie de mon objet?
Si j'exécute ce code dans le Graal de la console:
def p = new Post(title: "T");
p.save(flush: true); //or p.save();
Post.count();
GORM est pas à jeter des exceptions, mais les données n'est pas enregistré dans ma DB. Ce que je fais mal?
- Dans mon cas, j'ai eu une autre partie de code qui a été la suppression de mon rang, juste après la création de la nouvelle... 🙁
Vous devez vous connecter pour publier un commentaire.
Il est probable que vous avez une violation de contrainte. Ajouter
failOnError: true
à votre enregistrer les paramètres de la méthode. Ensuite, vous aurez une exception lorsque votre sauvegarde échoue. (Alternativement, vous pouvez vérifier la valeur de retour de l'enregistrer, et si c'est faux imprimerp.errors.allErrors()
.)La Validation et l'enregistrement sont fait ensemble. Si vous validez soumis par l'utilisateur de données qui a été lié à certains des objets de domaine, puis dans l'ordre pour vérifier la déroute en raison de l'entrée non valide le idiomatiques chose à faire est de vérifier la valeur de retour de la sauver; à défaut sur le compte de l'entrée non valide n'est pas exceptionnel de comportement. Si vous souhaitez simplement enregistrer le contenu de l'objet et que vous souhaitez une exception levée si il y a un problème, l'utilisation
failOnError
.Pour en savoir plus sur les raisons qu'ils ont conçu GORM, de sorte que vous besoin de faire cela voir cet article.
Probablement une contrainte sur
Post
est en train d'être violée et donc l'objet n'est pas enregistrée. Notez que le comportement par défaut de GORM n'est pas à jeter sur l'échec d'un jet. Vous devez l'appeler commeOu modifier le comportement à l'échelle mondiale par l'ajout de
à votre Config.groovy