qubianzhong
Mybatis获取当前sqlSession,Mybatis清空当前Session的缓存
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
qubianzhong
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
Mybatis获取当前sqlSession,Mybatis清空当前Session的缓存
Mybatis获取当前sqlSession,Mybatis清空当前Session的缓存
qubianzhong
关注
发布于 2018-09-19 13:35:41
2.7K
0
发布于 2018-09-19 13:35:41
举报
文章被收录于专栏:
行者常至
行者常至
SqlSessionUtils.getSqlSession(sqlSessionFactory);
SqlSessionUtils.getSqlSession(sqlSessionFactory).clearCache();
其中,sqlSessionFactory,是通过spring注入的。
需求情景:
每次update时,都要记录更新了什么字段,由什么值更新为什么值。所以使用的是Aop,在@around方法中,joinPoint.proceed()之前,运用方法的反射查询下数据库得到objectOld;joinPoint.proceed()之后,再运用方法反射查询下数据库得到objectNew。但是,因为每次update之前都会get一个model,在此基础上修改然后再update。所以,有时候就会造成joinPoint.proceed()之前的查询数据库,不会去查询数据库,而是会直接在缓存里得到其值。但是缓存里的是不对的,因为这是需要update的model。故而,需要在joinPoint.proceed()之前的获取model之前,清空下当前sqlSession的缓存。
SqlSessionUtils.getSqlSession(sqlSessionFactory).clearCache();
本文参与
腾讯云自媒体分享计划
,分享自作者个人站点/博客。
原始发表:2016年12月21日,如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
其他
本文分享自
作者个人站点/博客
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体分享计划
,欢迎热爱写作的你一起参与!
其他
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
关注
文章
0
获赞
0
目录
SqlSessionUtils.getSqlSession(sqlSessionFactory);
SqlSessionUtils.getSqlSession(sqlSessionFactory).clearCache();
其中,sqlSessionFactory,是通过spring注入的。
每次update时,都要记录更新了什么字段,由什么值更新为什么值。所以使用的是Aop,在@around方法中,joinPoint.proceed()之前,运用方法的反射查询下数据库得到objectOld;joinPoint.proceed()之后,再运用方法反射查询下数据库得到objectNew。但是,因为每次update之前都会get一个model,在此基础上修改然后再update。所以,有时候就会造成joinPoint.proceed()之前的查询数据库,不会去查询数据库,而是会直接在缓存里得到其值。但是缓存里的是不对的,因为这是需要update的model。故而,需要在joinPoint.proceed()之前的获取model之前,清空下当前sqlSession的缓存。
SqlSessionUtils.getSqlSession(sqlSessionFactory).clearCache();
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐