@transaction注解不起作用的原因
@Transactional 的使用要求:
- @Transactional 注解只能应用到 public访问权限的方法上 。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错, 但是这个被注解的方法将不起事务作用。
- @Transactional 注解可以被应用于接口和接口方法、类和类的 public 方法上 。
- @Transactional 注解的使用,必须在配置文件中配置事务相关信息。
- 因为spring事务是基于类和接口的,所以只能在类里面调用另一个类里面的事务,同一个类里面调用自己类的事务方法是无效的。
<tx:annotation-driven transaction-manager="transactionManager"/> <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSourceForSqlServer" /> </bean>