<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="basicDataSource"></property>
</bean>
<!-- <tx:annotation-driven transaction-manager="transactionManager"/> -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="update" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* cn.tianqi.demo.service..*.*(..))"
id="servicePointCut" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointCut" />
</aop:config>
@Transactional
public int update(int id,int change){
int t=airQualityIndexMapper.update(id,change);
if(0==0){
throw new RuntimeException("0");
}
return t;
}
update对应的那个方法需要注解,@transaction。
方法前需要加注解@Transactional
你配置了声明式事务,代码却使用了注解式事务,当然不起作用。
建议先分别熟悉这2种事务的配置方式,再来修改你的代码!