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

做婚恋网站赚钱吗西安seo专员

做婚恋网站赚钱吗,西安seo专员,网络系统管理技能大赛竞赛科目,广渠门做网站的公司背景 我之前有个方法需要多次调用数据库拿数据&#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/264363.html

相关文章:

  • 织梦网站建设网页卫星电视安装视频
  • 长沙 外贸网站建设长沙网站策划
  • 容桂微信网站建设网络加速器
  • 怎样做网站发布信息网络推广主要做什么
  • 诈骗网站怎么做的搜索引擎优化的简写是
  • 怎么查一个公司是否正规公司齐三seo顾问
  • 遂宁做网站的公司游戏推广怎么做
  • 云梦网络建站个人网上卖货的平台
  • 做网站必须有云虚拟主机深圳外贸网站推广
  • 池州网站设计引擎seo如何优化
  • 秦皇岛建设网站官网网站推广的技术有哪些
  • 网站开发到上线收录查询
  • 说做网站被收债搜索排名
  • 摄影比赛投稿网站今日新闻头条官网
  • 网站测试的方法友情链接平台网站
  • 中铁集团网站建设seo博客写作
  • 桂林象鼻山门票seo关键词排名优化哪好
  • 如何用微信公众号做企业网站小红书seo排名
  • 网站注销怎么做消百度百家号官网
  • 网站搭建工具视频佛山网站建设正规公司
  • seo网站优化快速排名软件比较有名的个人网站
  • 山西省新农村建设网站知乎seo排名的搜软件
  • 上海加盟网网站建设太原搜索引擎优化
  • 长沙制作手机网站的公司2024年新闻摘抄
  • 顺德网站建设基本流程网站关键词优化推广哪家快
  • 诸暨做网站公司快速排名优化推广价格
  • 南京定制网站建设怎么收费百度识图在线网页版
  • 电脑安装不了wordpress上海百度推广优化
  • 行政审批局政务服务网站建设情况网络营销推广渠道
  • 东营微信开发网站建设网络广告投放方案