Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtention de org.hibernate.TransactionException :erreur de transactions imbriquées non prises en charge lors de la suppression

Vous avez probablement commencé une transaction et essayé d'en commencer une autre sans avoir validé ou annulé la précédente. L'idiome lors de l'utilisation de la démarcation programmatique des transactions est le suivant :

try {
    sess.getTransaction().begin();

    // do some work

    sess.getTransaction().commit()
}
catch (RuntimeException e) {
    sess.getTransaction().rollback();
    throw e;
}

C'est fastidieux et sujet aux erreurs, et c'est l'une des raisons pour lesquelles l'utilisation d'EJB ou de Spring pour avoir des transactions déclaratives est si utile.