Fehler beim Löschen "org.hibernate.TransactionException: geschachtelte Transaktionen nicht unterstützt"

8

Wenn die Methode removeUserFromConference diese Ausnahme abruft:

%Vor%

Dao Methode:

%Vor%

Die Modellklasse:

%Vor%     
alonp 03.06.2012, 21:35
quelle

8 Antworten

21

Sie haben wahrscheinlich mit einer Transaktion begonnen und versuchen, eine weitere zu beginnen, ohne die vorherige übertragen oder zurückgesetzt zu haben. Das Idiom bei der Verwendung der programmatischen Transaktionsabgrenzung ist das folgende:

%Vor%

Dies ist umständlich und fehleranfällig, und das ist einer der Gründe, warum die Verwendung von EJBs oder Spring für deklarative Transaktionen so nützlich ist.

    
JB Nizet 03.06.2012, 21:46
quelle
7

Zuerst sollten Sie die HibernateProperties, hibernate.current_session_context_class,

injizieren %Vor%

Dann können Sie getCurrentSession () verwenden, um die CurrentSession abzurufen.

%Vor%     
user2204125 25.03.2013 11:42
quelle
4

Ich habe das gleiche Problem vorher. Erster Lauf:

%Vor%

wenn Sie etwas abfragen mit:

%Vor%

die gleiche Ausnahme wird in der zweiten beginTranscation ausgelöst. Ich habe es mit

gelöst %Vor%

statt

%Vor%

sowohl in Abfrage und speichern.

    
user1443692 06.07.2012 04:04
quelle
0

Was Sie hier gemacht haben:

%Vor%

versucht tatsächlich, eine offene Sitzung zu verwenden, ohne sie zu schließen.

Es ist mir passiert und ich hatte das gleiche Problem, und was ich getan habe ist:

%Vor%

und es wurde nicht "Hibernate Nested Transaction Not Supported Error" erneut ausgelöst ...

    
code.improve 02.07.2014 07:58
quelle
0

Ich könnte es mit dem folgenden Code lösen:

%Vor%     
Juan Francisco 01.02.2015 15:01
quelle
0

Versuchen Sie schließlich, Ihre Hibernate-Sitzung wie folgt zu schließen:

%Vor%     
Santi Barbat 22.07.2016 12:32
quelle
0

Ich löse dieses Problem, indem ich verschiedene Sitzungen mit

erstelle %Vor%     
Santi Garcia 01.02.2017 19:21
quelle
0

diese Zeile "session.beginTransaction ();" verhindern Sie mehrere Transaktionen, entfernen Sie diese Zeile und versuchen Sie es, weil in Select-Abfrage es nicht notwendig ist, aber es Code funktioniert nicht nach dem Entfernen dieser dann am Ende dieses Codes hinzufügen "session.rollback ();".

    
A.Aleem11 22.11.2017 09:07
quelle

Tags und Links