疯狂阿凯 2021-12-18 18:04 采纳率: 33.3%
浏览 37

为什么maven搭建ssm事务不回滚?

ssm往数据库增加数据时,手动加了1/0让代码报错,但还是加进去一条数据 没回滚是为什么?
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private SysUserMapper mapper;
    @Override
    public boolean saveUsers(List<SysUser> users) {
        int flag = 0;
        for (SysUser user : users) {
            flag+=mapper.insertSelective(user);
            int a = 1/0;
        }
        return flag==users.size()?true:false;
    }
}

@Test
    public void Test(){
        List<SysUser> users = new ArrayList<SysUser>();
        for (int i = 14; i < 16; i++) {
            SysUser user = new SysUser();
            user.setLoginAccount("admin"+i);
            user.setLoginPwd("admin"+i);
            user.setRealName("管理"+i);
            user.setFlag(i%2);
            users.add(user);
        }
        boolean status = service.saveUsers(users);
        Assert.assertTrue(status);
    }

 <tx:advice id="tx" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save*"   propagation="REQUIRED"/>
            <tx:method name="insert*" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
            <tx:method name="select*" read-only="true"/>
            <tx:method name="query*" read-only="true"/>
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut id="p1" expression="execution(* com.ak.service..*.*.*(..))"/>
        <aop:advisor advice-ref="tx" pointcut-ref="p1"></aop:advisor>
    </aop:config>

  • 写回答

3条回答 默认 最新

  • 编号灬9527 2021-12-18 18:45
    关注

    又不是什么异常都给你回滚

    评论

报告相同问题?

问题事件

  • 创建了问题 12月18日