五、在事务中使用Mybatis缓存的那些坑

场景:

1、同一个事务中

2、使用mybatis执行同一个sql

@Transactional(rollbackFor = { Exception.class })
public void getInfo() {
  SysUser user = sysUserDao.selectByPrimaryKey(111);//SysGrade=1
  user .setSysGrade(0);
  SysUser sysUser = sysUserDao.selectByPrimaryKey(111);
  System.out.println(sysUser.getSysGrade());//0
}

如果在同一个事务中,多次同一个查询sql在mybatis的执行过程中,只会查询一次数据库,后几次所返回的对象是mybatis在在内部做了缓存。

参考链接:https://www.cnblogs.com/tv151579/p/5742371.html

原文地址:https://www.cnblogs.com/zheaven/p/11679238.html