2009-05-18 4 views

Antwort

3

Der Unterschied besteht darin, dass Annotation-basierte mit der Transaktion Abgrenzung (@Transactional) und die TransactionTemplate ist, dass die Verwendung von TransactionTemplate Paaren Sie Spring Transaktion Infrastruktur und bedeutet, dass Sie programmatisch den Transaktionsstatus behandelt Einstellung, wenn die Transaktion rückgängig gemacht werden soll. Sie können die anmerkungsbasierte Transaktionsabgrenzung mit der Spring-Transaktionsunterstützung oder mit AspectJ-Transaktionen außerhalb eines Spring-Containers verwenden.

Siehe auch die online documentation for transactions in Spring.

4

Die Spring-Vorlagenklassen dienen nur dazu, eine bessere API für die Ausführung von Persistenzoperationen bereitzustellen - sie befassen sich nicht mit Transaktionen. Wenn Sie transaktionale Operationen ausführen möchten, müssen Sie entweder die Annotationsmethode @Transactional verwenden oder TransactionTemplate verwenden.

0

meinst du usin @transactional wird meine Dao-Methoden mit commit, close oder bei Verwendung der Feder-Transaktionsvorlage (jpatemplate, hibernatetemplate) kapseln?

1

Wenn Sie @transactional mit der richtigen Spring-Konfiguration verwenden, erkennt Spring, dass die Methode eine Transaktion benötigt und die Transaktionserstellung, das Commit und das Schließen für Sie übernimmt.

Wie skaffman sagte, ist @transactional nicht direkt an die Template-Klassen gebunden. Sie können für jede Klasse verwendet werden, die Transaktionen benötigen.

Verwandte Themen