2013-07-10 7 views
6

Ich weiß, dass dies wahrscheinlich ein Duplikat ist und, ironischerweise, bevor ich es hier und da zu lesen begann ich dachte, ich wusste, was es für war (Unnötig noch zu sagen, aber ich sage es mir bitte korrigieren, wo ich falsch bin) :
es entlastet den Programmierer() und commit() verwenden transaction.begin zu haben. Wenn Sie eine Methode, die zwei DAO Methoden aufruft, die normalerweise jeweils würde eine transaction.begin und transaction.commit die wirklichen Vorgänge umfassend und nennen sie es in zwei Transaktionen führen würde (und es könnte ein Rollback Probleme sein, wenn die vorherige dao Verfahren sollte werden rolledback). commit() Zyklus - aber wenn Sie @transactional auf Ihrer Methode verwenden, dann al diejenigen DAO-Anrufe werden in einem einzigen begin() gewickelt werden. Natürlich verwenden, falls Sie @transactional die DAOs nicht die begin() und commit() Methoden verwenden müssen, denke ich.Was macht @Transactional?

+1

Sie haben Recht, das ist ein Duplikat von http://StackOverflow.com/Questions/1099025/Spring-transactional-what-Happens-in-Background – robotoaster

+1

Eine Sache, die hinzufügen möchten, ist, dass wenn Sie Code hinzufügen, wie commit oder Programmatisch in Ihrer Methode beginnen, wird es funktionieren. Die Transaktion ändert nur Ihre Datenbankverbindung zu nicht automatischem Commit. – OQJF

Antwort