TransactionManager ist völlig anders als EntityManager, einer ist verantwortlich für die Entitäten (Listener, Entitäten, Beziehungen, Persistenzlebenszyklus von ihnen und diese Schnittstelle definiert die Methoden, die zur Interaktion mit dem Persistenzkontext verwendet werden), die mit einer bestimmten Persistenz assoziiert sind Kontext, in dem die Entitäten am Leben sind, währenddessen TransactionManager für den transaktionalen Datenzugriff verantwortlich ist und Unterstützung für alle Transaktionen bietet, die innerhalb Ihrer Anwendung auftreten müssen.
Konfiguration binden Sie ein Entitymanager-Objekt an einen bestimmten Transaktionsmanager.
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
<qualifier value="pagTransactionManager" />
</bean>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
der sie die Verbindung zur Datenbank bedeutet und Einrichtungen werden von der EntityManager verwaltet, aber das Objekt, das eine enge Transaktion in der Dienstschicht öffnen Sie die @Transaction Anmerkung unter Verwendung der Transaction.
Die Schnittstelle javax.transaction.TransactionManager
ermöglicht es dem Anwendungsserver, Transaktionsgrenzen im Auftrag der verwalteten Anwendung zu steuern. Diese Schnittstelle enthält eine Vielzahl von Methoden, mit denen sie gesteuert werden: Commit, Suspend, Rollback.
Also im Grunde injizieren Sie eines dieser Objekte hängt davon ab, was Sie suchen, verwalten Sie Entitäten und mit ihnen arbeiten verwenden Entitymanager, steuern Sie den Transaktionszustand Ihrer Anwendung selbst verwenden Sie den Transaktionsmanager.