当前位置: 首页 > wzjs >正文

手机网站建设新闻做百度推广销售怎么找客户

手机网站建设新闻,做百度推广销售怎么找客户,计算机信息网络系统,做网站建设的网络公司经营范围怎样填背景 我之前有个方法需要多次调用数据库拿数据&#xff0c;由于每次查询数据比较少&#xff0c;所以我前期都是直接查数据库拿的&#xff0c;准备后面再改缓存 // 查询代码 假设在A方法中 List<LeftOrderType> leftOrderTypes orderTypeMapper.selectList(wrapper); …
  • 背景

我之前有个方法需要多次调用数据库拿数据,由于每次查询数据比较少,所以我前期都是直接查数据库拿的,准备后面再改缓存

// 查询代码  假设在A方法中
List<LeftOrderType> leftOrderTypes = orderTypeMapper.selectList(wrapper);
// A方法的后面我对查询到的结果集做了改动,删除了集合中的元素

我是通过其他方法调用A方法去查询的,但是有一天我发现有个方法连续调用了A方法五次,每次只有第一次有结果,后续的四次调用在A方法的查询代码中返回的List都是空的,我查资料说是mybatis一级缓存的问题,但是我这里查询的动作都是在A方法中的,理论上应该是每次调用A方法查询的都是新的集合,但是只有第一次调用有结果,其后续调用都是空集合。

  • 原因

后来debug发现每次拿到的集合内存地址都是一样的,说明确实是mybatis缓存生效了,再后来排查发现我调用A方法的方法被打上了@Transactional注解,这下找到原因了,在同一个事务中多次进行相同的查询mybatis会返回第一次查询的结果集(mybatis一级缓存的是结果集的引用),但是我在A方法中对返回的结果集做了修改(删除了结果集的元素),所以后续的几次缓存直接返回这个集合导致拿到的都是空集合。

  • 解决方案
  1. 将mapper的查询放入新构造的集合中,不改动原来的mapper返回的集合
 List<LeftOrderType> leftOrderTypes = new ArrayList<>(orderTypeMapper.selectList(wrapper));
  1. 每次做完操作后清空一级缓存
 sqlSession.clearCache();
http://www.dtcms.com/wzjs/384235.html

相关文章:

  • wordpress日志在哪seo优化软件免费
  • 网站起名字大全企业网站怎么做
  • b2c所有网站网站设计公司
  • 哪个网站做画册牛逼个人永久免费自助建站
  • 广州从化网站制作公司郑州网站优化平台
  • 网站的建设目标文档公司推广
  • wordpress 视频不播放游戏优化
  • 客户拒绝做网站的理由厦门最快seo
  • 建设数字官方网站关键词搜索网站
  • 酒水招商网站大全本地推广平台
  • 河南建筑公司排名东莞网站优化公司
  • 现在网站开发语言网络推广竞价
  • 本地服务器怎么做网站电商培训机构哪家强
  • html企业网站系统深圳全网推广排名
  • 外贸网站做流量厦门seo怎么做
  • 有谁会设制网站济南网站seo公司
  • 网站建设低价网站到底便宜在哪网络推广渠道分类
  • 泉州制作网站设计营销网站定制公司
  • 福州网站开发cms宁波seo教程
  • 怎么在vps上做网站百度短链接在线生成
  • 图展网站源码网站推广服务外包
  • 用css代码做新闻网站网页设计模板
  • 幼儿园的网站建设支持360优化大师官方下载
  • 互联网站账户e服务平台seo的关键词无需
  • 网站 如何做后台维护深圳百度地图
  • 河北邯郸什么时候解封seo短视频网页入口
  • 360网站推广登录南京百度推广
  • 建设网站协议范本免费推广公司的网站
  • 青岛网站建设公司seo外链怎么做能看到效果
  • 山东网站建设seo综合权重查询