Spring JTA Transaktion manager Frage
Sind wir mithilfe von jboss verwaltet EntityMangerFactory mit folgenden Frühjahr bean
<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence-units/myPU"/>
Nun in unsere spring-bean, die wir verwenden, @PersistenceContext, um die entitymanager und es funktioniert gut. Was ich möchte ist, dass, wie kann ich sagen Feder zu greifen, die Transaktions-manager zur Verfügung gestellt von jbos jta-service, und verwenden Sie es in meinem dao?
Wenn ich definieren txmanager wie unten, dann kann Frühling werden nehmen, die Kontrolle der Verwaltung der transction mit @Transaction-annotation?
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:/TransactionManager"/>
<property name="userTransactionName" value="UserTransaction"/>
</bean>
Wenn ja, dann, wenn der Frühling commit der Transaktion und Rollback?
Dank
InformationsquelleAutor user509755 | 2011-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fast - Sie sollten es nennen
transactionManager
eher alstxManager
. Sie können überschreiben Sie den Namen, den er sucht, aber es ist einfacher, zu bleiben, um die Konvention.Auch
JtaTransactionManager
wird in der Regel automatisch erkennen die verschiedenen JNDI-Namen, die sollte man nicht angeben müssen Sie Sie manuell.Besser noch, nicht erklären
JtaTransactionManager
überhaupt, nur verwenden<tx:jta-transaction-manager/>
, und Frühling sollte das richtige tun.Also, alles, was Sie benötigen, ist:
Einmal im Ort, alle Bohnen kommentiert mit
@Transactional
haben, Ihre Transaktion hinweg verwaltet Frühjahr, z.B. haben die Transaktionen ein commit oder ein Rollback ausgeführt, wenn die annotierte Methode beendet (siehe docs).Suchen Sie bei einer bekannten Liste von möglichen Standorten.
InformationsquelleAutor skaffman