Du har förmodligen påbörjat en transaktion och försöker påbörja en annan utan att ha begått eller återställt den föregående. Formspråket när man använder programmatisk transaktionsavgränsning är följande:
try {
sess.getTransaction().begin();
// do some work
sess.getTransaction().commit()
}
catch (RuntimeException e) {
sess.getTransaction().rollback();
throw e;
}
Detta är besvärligt och felbenäget, och detta är en av anledningarna till att det är så användbart att använda EJB eller Spring för att ha deklarativa transaktioner.