Spring中的事务管理器JPA DAO
我在spring和JPA中使用了以下配置Spring中的事务管理器JPA DAO,spring,hibernate,jpa,Spring,Hibernate,Jpa,我在spring和JPA中使用了以下配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:sc
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="entityManger"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="JPA-01" />
</bean>
<bean id="dao" class="springdao.MessageDAO" />
</beans>
我有以下问题,
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
您可以通过两种方式使方法在事务下执行
- XML配置
- @事务注释
然而,使用Spring这样的框架的主要目的是,有人已经为您测试了基础架构代码,您可以只专注于测试您的业务逻辑。尝试重新测试可能不是一个好主意。当您使用实体管理器作为数据访问API时,可以使用以下事务管理器配置
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="dataSource" ref="dataSource"/>
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
默认情况下,如果命名为“datasource”和“entityManagerFactory”,则此事务管理器将拾取数据源bean。此事务管理器变体将指定entitymanager工厂中的实体管理器与当前线程绑定。同样值得一看它的功能
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="dataSource" ref="dataSource"/>
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>