使用spring-data-jpa
事物管理器使用
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory_orcl"/>
</bean>
默认为将现有事务全局标记为回滚
设置的事物切点为所有service的所有方法
在一个service方法中调用了另一个service方法,其中调用的第二个方法发生异常,标记为rollbackOnly,就算在第一个service中catch后还是会报异常。
解决方法:
将事物管理器的globalRollbackOnParticipationFailure属性设置为false可以自定义是否回滚,此时catch后则不会回滚
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory_orcl"/>
<property name="globalRollbackOnParticipationFailure" value="false" />
</bean>