Si vous regardez le code suivant du AdoTransaction
(ref), vous verrez comment NH réagit à une erreur lors de la tentative de validation. Bien que la transaction ne soit pas annulée explicitement, elle n'est certainement pas validée. Par conséquent, je pense que la réponse à votre question est oui, les modifications de la base de données en attente seront annulées.
Il est intéressant de noter que l'appel à Flush()
n'est pas enveloppé dans try
. Il convient donc de garder à l'esprit qu'une exception interceptée ici peut laisser le Session
dans un état imprévisible. D'où le guidance sur la gestion des exceptions.
Veuillez lire le lien ci-dessus, assurez-vous que vous avez correctement éliminé la transaction, utilisez si possible l'instruction "using". –