Quote:
Connsidérer que les exceptions ne sont pas rattrapables.
Il s'agit plus d'une pratique obligatoire que d'une "meilleure pratique". Quand une exception intervient, il faut faire un rollback de la Transaction et fermer la Session. Sinon, Hibernate ne peut garantir l'intégrité des états persistants en mémoire. En particulier, n'utilisez pas Session.load() pour déterminer si une instance avec un identifiant donné existe en base de données, utilisez find() (ou get()) à la place. Quelques exceptions sont récupérables, par exemple StaleObjectStateException et ObjectNotFoundException.
Comme le précise le document, certaines sont récupérable. Néanmoins, sans un être un maître de Hib3 ( loin de là d'ailleurs), il me semble vraiment étrange que tu es à gérer des violation de clés au run time.
Logiquement, une fois ton modèle de données stabilisé, aucun de tes appels à Hib3 ne devrait plus avoir de violation de clé. A moins que l'application n'est pour but de générer des tables ( comme phpMyAdmin). Peux tu en dire plus sur le besoin de remonter cette info ?