TransactionManager hoàn toàn khác với EntityManager, một người chịu trách nhiệm về thực thể (người nghe, thực thể, mối quan hệ, vòng đời kiên trì của họ và giao diện này định nghĩa các phương thức được sử dụng để tương tác với ngữ cảnh bền vững). bối cảnh nơi các thực thể còn sống, trong khi đó TransactionManager chịu trách nhiệm truy cập dữ liệu giao dịch, hỗ trợ cho tất cả các giao dịch cần xảy ra trong ứng dụng của bạn.
Cấu hình ràng buộc một đối tượng thực thể đối với một người quản lý giao dịch cụ thể.
<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>
Mà nó có nghĩa là kết nối đến cơ sở dữ liệu và các đối tượng được quản lý bởi EntityManager, nhưng đối tượng mà mở một giao dịch gần trong lớp dịch vụ sử dụng chú thích @Transaction là TransactionManager.
Giao diện javax.transaction.TransactionManager
cho phép máy chủ ứng dụng kiểm soát ranh giới giao dịch thay mặt cho ứng dụng đang được quản lý, giao diện này chứa rất nhiều phương pháp đang sử dụng để kiểm soát chúng như: cam kết, tạm dừng, khôi phục. Vì vậy, về cơ bản tiêm một trong những đối tượng này phụ thuộc vào những gì bạn đang tìm kiếm, quản lý các thực thể và hoạt động với chúng sử dụng entitymanager, kiểm soát trạng thái giao dịch của ứng dụng của bạn bằng chính bạn sử dụng transactionmanager.