Comment intercepter des exceptions de clé en double dans Grails. Lorsque vous tentez d'enregistrer un entier existant pour une contrainte de colonne unique, l'erreur est générée lors de la sauvegarde/mise à jour d'un enregistrement.Grails Dupliquer Gestion des exceptions
également utilisé
try{
object.save(flush:true)
}
catch(org.springframework.dao.DataIntegrityViolationException e){
println e.message
}
catch(org.hibernate.exception.ConstraintViolationException ex){
println e.message
}
catch(Exception e){
println e.message
}
Mais incapable d'attraper cette question.
23: 41: 13,265 ERROR [JDBCExceptionReporter: 101] entrée en double '1' pour touche 2
23: 41: 13281 ERREUR [AbstractFlushingEventListener: 324] Impossible de synchroniser la base de données
état avec la session org .hibernate.exception.ConstraintViolationException: Impossible exécuter la mise à jour batch JDBC à org.hibernate.exception.SQLStateConverter.convert (SQLStateConverter.java:94) à org.hibernate.exception.JDBCExceptionHelper.convert (JDBCExceptionHelper.java:66) at org.hibernate.jdbc.Abs tractBatcher.executeBatch (AbstractBatcher.java:275) à org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:266) à org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:168) à org.hibernate.event.def.AbstractFlushingEventListener.performExecutions (AbstractFlushingEventListener.java:321) à org.hibernate.event.def.DefaultFlushEventListener.onFlush (DefaultFlushEventListener.java:50) à org.hibernate.impl.SessionImpl. flush (SessionImpl.java:1027)
Pourriez-vous s'il vous plaît partager la solution pour résoudre ce problème.
non, id n'est pas généré automatiquement et la colonne est une clé unique. C'est un champ de texte à entrer et lorsque l'utilisateur entre nombre entier existant, il ne parviendra pas à enregistrer. Cela fonctionne correctement, mais dans la console je recevais les erreurs mentionnées. – Srinath