请问各位,以下代码使用的spring和mybatis进行事务配置,为什么事务没有生效?

图片说明

<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;
}

3个回答

update对应的那个方法需要注解,@transaction。

方法前需要加注解@Transactional

weixin_43005085
weixin_43005085 加了注解也沒有效果
8 个月之前 回复

你配置了声明式事务,代码却使用了注解式事务,当然不起作用。

建议先分别熟悉这2种事务的配置方式,再来修改你的代码!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!