我执行了dao层的mybatis更新方法,但是数据库未更新

时间:2019-07-19 03:30:28

标签: java spring-boot mybatis

运行junit4测试时,我发现mybatis的方法已成功更新,但是数据库没有更新的记录,但是执行方法下面有一个while循环执行逻辑,这是因为该方法还没有执行吗?但是当我删除了while循环并在mysql中进行了更新。

public void executeMethod(Long id) {
    UserMapper.updateById(id);
    while(conditions) {
        // some business
    }
}

1 个答案:

答案 0 :(得分:0)

一个可能的原因是,在检查数据库时未提交事务。

例如,如果executeMethod@Transactional注释,则事务在输入方法之前被注视,并且在executeMethod完成之后被提交。因此,如果您要在控制流离开executeMethod之前检查数据库,则更改尚未提交,因此当您从另一个事务查询数据库时,这些更改是不可见的。