2010-10-07 16 views
12

Pracuję nad aplikacją internetową opartą na JPA + Hibernate, Spring i Wicket. Zastanawiam się, jaki jest najlepszy sposób realizacji transakcji w moim kodzie? Jakiego menedżera transakcji powinienem użyć? Czy powinien to być org.springframework.orm.jpa.JpaTransactionManager lub org.springframework.jdbc.datasource.DataSourceTransactionManager lub coś innego? Chciałbym użyć Springa do zarządzania moimi transakcjami.Jakiego menedżera transakcji użyć? (JPA, Spring)

Odpowiedz

19

nanda is right, ty może używać tylko JpaTransactionManager. Omówieniem abstrakcji Transaction Manager jest tutaj interfejs Spring PlatformTransactionManager, a JPATransactionManager to jedyna implementacja tego interfejsu, który rozumie WZP.

Powinieneś przeczytać rozdział Transaction Management z odnośnika Wiosna, aby lepiej zrozumieć ten temat.

+0

ok, wielkie dzięki chłopaki! –

+0

+1 za twoją kompletność i +1 za nandę też za sprawiedliwość :) –

+0

@SeanPatrickFloyd Jeśli możemy używać tylko JpaTransactionManager, to dlaczego na wiosnę jest tak wielu innych menedżerów TransacitonManager i czy powinny one zostać użyte? – Erlan

6
org.springframework.orm.jpa.JpaTransactionManager 

Moje preferencja jest użycie tego z dopiskiem:

<tx:annotation-driven transaction-manager="myTxManager" /> 
1

Interfejs org.springframework.transaction.PlatformTransactionManager jest kluczową abstrakcją w Spring API, zapewniającą podstawowe metody kontrolowania operacji transakcji w czasie wykonywania: begin, commit i rollback.

PlatformTransactionManager interfejsu, implementacji

  1. JtaTransactionManager ----->JTA
  2. DataSourceTransactionManager ----->JDBC
  3. JpaTransactionManager ------>JPA
  4. HibernateTransactionManager ------>Hibernate

to depand na requirment który moudle wiosny swój korzystania

Powiązane problemy