2010-11-26 11 views
6

Ich verwende Spring 3 zum Verwalten von DB-Transaktionen. Wenn eine Ausnahme ausgelöst wird, erhalte ich die Ausnahme und gebe die entsprechende Nachricht zurück. Aber wenn Spring die Transaktion festschreibt, wird die Ausnahme erneut ausgelöst und in eine verpackt. Wie kann ich mit dieser Ausnahme umgehen? Soll ich Abfangjäger oder etwas anderes benutzen? Hat schon jemand dieses Problem gehabt?kann DataIntegrityViolationException mit umbrochener Transaktion nicht abfangen

Vielen Dank im Voraus

Antwort

9

Wenn Ihre Transaktionsgrenze sind an Ihrer Service-Schicht (wenn Sie eine haben, die Sie sollen), dann sollten Sie die Ausnahme außerhalb der Grenze fangen. Die Funktionsweise von Spring ist, dass wenn eine Ausnahme außerhalb der Transaktionsgrenze auftritt, die Transaktion zurückgesetzt wird. Indem Sie die Ausnahme abfangen, stoppen Sie diesen Prozess, den Sie wahrscheinlich nicht möchten.

Interzeptoren sind eine gute Möglichkeit, mit der Ausnahme außerhalb der Transaktionsgrenze umzugehen.

+0

Jetzt sehe ich, wo mein Fehler ist. Vielen Dank – Neuquino

Verwandte Themen