mybatis缓存没有及时更新的问题

mybatis缓存没有及时更新的问题
权限改变mybatis缓存更新ssm整合web项目时,用户a登陆系统,查询到的权限a1(这时他查询到的权限保存到了
缓存中),同时,用户b登陆系统,并对用户a的权限做出了修改(或者手动的去数据库修
改了用户a的权限),此时用户a的权限在数据空中发生了变化,但是查询缓存中并没有
变化。用户a在在系统中的权限没有得到及时的更新。
请问大神们,如何解决这个问题?????

0

1个回答

设置每次都重新登录?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis缓存与数据实时更新
第一种方式:刷新缓存(就是清空缓存)在mapper的同一个namespace中,如果有其它insert、update、delete操作数据后需要刷新缓存,如果不执行刷新缓存会出现脏读,每次查询都需要清除缓存,设置statement配置中的flushCache=”true” 属性,默认情况下为true即刷新缓存,如果改成false则不会刷新。使用缓存时如果手动修改数据库表中的查询数据会出现脏读。**
mybatis二级缓存不能及时同步问题
 本方法没有具体介绍mybatis二级缓存不及时同步的具体问题,只是提供解决方法,关于具体问题分析请看问题分析    这段时间刚刚接触到mybatis二级缓存,以前只是知道但是没有用过,基本上都是用redis做业务缓存,并没有用mybatis自己的二级缓存。结合上一篇在别的博客看到的,解决二级缓存问题由于关联查询,导致不同命名空间下的缓存不能及时更新的现象,我在我们的项目代码中也发现了这样的问题。...
解决浏览器缓存JS和CSS文件后发布文件更新不及时的问题
维护线上代码更新CSS样式,发布后发现使用手机浏览样式没有更新,浏览器使用强制刷新倒是更新了,但是用户如果使用手机访问就会访问到异常的界面。 参考了其他博主文章:https://www.cnblogs.com/eric-qin/p/6255616.html 比较认同使用加一个时间字符串参数的方式。 例如: <link rel="stylesheet" type="text/css"...
处理客户端缓存无法及时更新js和css文件的方法
在js和css文件后面添加版本号,重新发布新版本时,在原有版本号上加1,可以保证客户端在不清除缓存的情况下使用最新的js和css文件;<script type="text/javascript" src="${ctxStatic}/apppage/js/date.js?v=2"></script>
MyBatis--查询缓存--增删改对内置二级缓存的影响
默认刷新缓存: 使用增删改不刷新缓存:
Mybatis二级缓存之刷新缓存的细节
最近在看传智的视频,发现刷新缓存的一个细节,记录下一起学习。 先上一段老师的课堂笔记:  刷新缓存(就是清空缓存) 在mapper的同一个namespace中,如果有其它insert、update、delete操作数据后需要刷新缓存,如果不执行刷新缓存会出现脏读。    设置statement配置中的flushCache="true" 属性,默认情况下为true即刷新缓存,如
TortoiseSVN刷新不及时的解决办法
时常会遇到  TortoiseSVN刷新不及时,主要是由于缓存造成的。 解决办法如下: 1.在SVN内的任一文件夹点击右键 “TortoiseSVN”->“Settings” 2.“Icon Overlays” 中“Stasus”改选“None”,然后“确定”
iOS 启动图不能及时更新的问题(launchScreen方式)
解决方式 1.将LaunchImage删除,只用launchScreen方式设置启动图 2.在launchScreen方式下,找到启动图,删除,改变图片名称,然后再拖入工程主目录下(不要放在Assets.xcassets中,这样可能更新找不到启动图,呈现白屏)。 3.在更新APP没有意外的话,应该就更新启动图啦。 (ios8 以上还是使用LaunchImage但是要将这个地方清除 如图) ...
IDEA web项目中更改源码中的css样式浏览器不及时更新的问题
IDEA web项目中更改源码中的css样式浏览器不及时更新的问题 出现问题后首先百度,在更改过配置,下过liveEdit插件后仍无效,最后发现是浏览器缓存的问题,我采取的做法是在浏览器调试工具中的network里选择禁用缓存 选中箭头指向的选项,然后每次修改后刷新即可。 然而,我发现它有时候依然不好使 所以选择手动修改右击修改过得文件,选择clear browser cache 清除浏览器缓存...
Mybatis缓存小谈
Mybatis缓存 1.Mybatis缓存介绍 众所周知频繁的对数据库进行查询操作,存在严重的性能问题,而Mybatis作为一个持久层的框架,为了解决这种问题,像其他框架一样,提供了缓存的技术,这里稍微提一下,MyBatis的持久层操作是通过代理对象实现的。 Mybatis提供了两种缓存: 一级缓存 一级缓存为一级缓存是SqlSession级别的缓存,只要当前SqlSession没有com...
vue对数据进行赋值的时候,有时候可能存在数据没有及时更新
使用下面函数完成数据视图的更新操作 this.$forceUpdate();
mybatis一级缓存问题导致第二次查询结果出现变化
mybatis的缓存会导致第二次的查询结果变化。 具体操作如下: 第一次查询出来的对象做修改操作。 第二次查询出来的对象就会产生变化,不再从数据库中取,而是直接从缓存中取对象。
解决浏览器图片缓存,上传图片不能自动刷新的问题
做网页时遇到了这类问题,找了很久解决方法,网上大部分的解答一是在属性后加一个随机数或者时间戳以保证访问的路径都不同,从而解决缓存。另一个就是在html文件头部加等,但都没有解决问题。现在分享一下我的解决方法,希望对遇到同样问题的伙伴们能有所帮助。   不要直接用src属性来直接访问图片,在servlet中用java I/O流来读取图片后传到页面显示。 jsp页面中: servlet中
android5.0 手机中,缓存文件不能实时刷新问题,解决办法.
public class MtpUtils { private static final String ACTION_MEDIA_SCANNER_SCAN_DIR = "android.intent.action.MEDIA_SCANNER_SCAN_DIR"; private static final Logger logger = LoggerFactory.getLogger
Glide缓存导致图片不更新
Glide是一个非常好用的图片加载框架,它可以很好的缓存图片以提高图片加载效率。 但是在使用的时候,会出现一个问题:当服务器图片资源已经更新,但是URL地址不变时,Glide不会重新加载URL,而是从缓存中读取旧的图片资源。 下面给出两种解决方式: 1、仅使当前网络加载为服务器新数据——治标,一次性: 此方法关键在于指定Re...
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
描述 做项目时遇到的问题: 通过AJAX请求后台时,当参数相同,IE浏览器会从缓存中取值而非从重新请求服务器。其他使用非IE内核的浏览器并无此问题。 解决 有两种解决办法; 其一: 在AJAX请求URL后面加随机数。 例如:URL + “&t=” + new Date(); 其二: 直接给AJAX参数:cache设置为false; $.ajaxSet
EF延迟加载机制导致的更新数据的时候有的更新有的没更新问题的解决
最近在处理一个问题的时候遇到了EF延迟加载导致的问题。我有一组任务,任务数量不固定,要分配给组员,组员数量也不固定。分配的时候原则上是平均分配,但是实际中肯定有多余的,这多余的会分配给最后一个组员。代码是这样写的: var query = new TaskService().Get(m => m.TaskMainIID == dto.taskmainiid && m.Director == Ad
PHP 代码更新延迟 PHP代码没及时更新解决方案
本博客第一篇文章。以这篇文章为开始,我将陆续抛出一些开发过程中的遇到过的问题并附带解决方案,希望能帮到你们。问题 修改PHP代码,不能及时更新,要等待许久才更新好 修改PHP代码,刷新页面等待PHP反馈结果,1秒过去了,2秒过去了,一直都没有反应?纳尼,什么情况?等到第N分钟的时候,页面才更新成功。解决方案一,先排查程序缓存,确定不是程序框架开启缓存设置的问题。 二,再排查服务器是否启用CDN
MyBatis关联查询,其中关联表有数据更新,如解决缓存更新的问题
最近在做的项目中有一个消息功能,其中像系统消息的实现,就是在消息表中只有一条记录,然后对应每个用户要标记为删除或者已读,就在另一个表中用一条记录的标记。 这样设置删除或已读标记的时候,是在另一个表的 Mapper.xml 中操作的,也就不会更新消息表的缓存。 有人试图在ABMapper.xml 中采用cache-ref才解决这个问题,不好使。不知道是不是我配得不对。 ABMapper.xm...
mybatis中的缓存问题
关于mybatis基础我们前面几篇博客已经介绍了很多了,今天我们来说一个简单的问题,那就是mybatis中的缓存问题。mybatis本身对缓存提供了支持,但是如果我们没有进行任何配置,那么默认情况下系统只开启了一级缓存,一级缓存就是同一个SqlSession执行的相同查询是会进行缓存的,OK,那么今天我们就来看看这些缓存,并简单验证下。 系统默认开启了一级缓存 这个缓存系统默认情况下是开启
Mybatis查询缓存引起的问题
Mybatis在查询时会采用缓存机制,分为一级缓存和二级缓存,一级缓存默认就会开启,二级缓存需要配置才可以使用。 一级缓存基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCa
关于IE缓存所带来的数据不能实时更新的解决办法
IE缓存 为了提高访问网页的速度,IE会采用一种缓存机制,将你访问过的网页内容存在电脑里,然后当我们每次访问网站时,首先就会搜索有没有这些内容,如果有就直接从缓存中调出来,从而提高访问网站的速度,这本是提高访问速度很好的举措,但是某些情况下我们并不需要这种手段,比如需要实时更新查看数据的时候,这种时候该怎么停止让IE访问缓存呢,这里介绍两种比较有效的方式。 在页面头部加上以下代码: ...
WebView加载h5,h5更新了,app里一直没更新
主要是因为webview有个默认的缓存机制,只需要自己添加这样两行代码就可以了: WebSettings webSettings= webView.getSettings(); webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); //默认不使用缓存!
用cookie解决页面没有更新缓存只刷新一次页面的问题+跨域问题
先设置cookie 如果需要跨域的话 path表示得在/(根目录下) domain表示的是cookie所在的域,默认为请求的地址,如果在同一服务器下不同域名下的话,需要有他们相同部分的域名:如下面.anhuanjia.com的例子 function SetCookie(name, value) { var Days = 30; var exp = new Date();
vuejs视图不能及时更新的问题 ,深入响应式原理
vuejs 深入响应式原理 视图更新
WKWebView加载Http页面更新后不刷新问题及解决办法
WKWebView在加载HTTP的H5页面,由于没有HTTPS的加密传输,所以会在本地缓存CSS样式、Html网页(类似电脑上下载到本地的网页)等内容,所以在后台更改H5页面之后,APP由于缓存的问题不能展示更改后的页面 iOS7的系统继续使用UIWebView加载不会出现这种问题, iOS9也可以通过WBWebSiteDataStore的对象方法: - (void)removeData
hibernate 3.3 数据库 修改后,前台 不同步, hibernate 3.3 取消缓存
public boolean update(XianLu t){ boolean flage =false; Configuration config=new Configuration().configure(); SessionFactory sessionFactory= config.buildSessionFactory(); Session sess
nginx缓存引发的问题
请求为f.chinasoft.com/file f.chinasoft.com 域名指向slb(3.3.3.3) 业务方式: ios-->slb(3.3.3.3)-->ecs集群(每一台ecs都有一个nginxweb服务器)-->mysql 从mysql中获取的数据为数据库的IP地址,再次通过该ip(假设为1.1.1.1)去请求对应的数据 ip(1.1.1.1)被黑客d
MyBatis之多表之间的联系与缓存
多表之间的联系: 一对多:查询哪些人有哪些车 Demo3.java package cn.hncu.demo; import java.sql.SQLException; import java.util.List; import java.util.Set; import org.apache.ibatis.session.SqlSession; import org.j
favicon.ico 图标及时更新问题
首先看你 favicon.ico 图标文件引入路径是否正确<link type="image/x-icon" href="./favicon.ico" rel="icon">然后 看ico文件能否正常打开,这两个没问题的话,在地址栏直接输入你的域名 http://xxx.com/favicon.ico 注意 此刻可能还是 之前的ico图标 不要着急 刷新一下 试试 完美解决 清除程序缓存
Mybatis一级缓存导致分布式环境下的查询脏数据
    Mybatis一级缓存,也称本地缓存,默认是SqlSession级别的缓存。在一次程序与数据库的会话(Sqlsession)中,mybatis会维护一个以hashmap为存储结构的一级缓存,在这个会话中,只要在两次相同条件的查询中间,这个会话里没有出现增删改的操作,那么Mybatis会在第二次查询时候在缓存中将这个结果返回,导致两次查询的返回结果对象其实是一个,用“==”比较结果为true...
spring+mybatis缓存的问题及源码
最近和金业探讨过mybatis缓存的问题,供大家查阅也正好记录下。 文档中分为三个部分:结论理解,mybatis缓存的源码解析,spring+mybaits的整合及对mybatis的代理以及对mybatis缓存的影响 1、结论在这里 【无事务前提,dao每个sql操作都是一个sqlSession实例在进行操作不可能共用一级缓存。在有事务前提下,同个事务内使用一个sqlSession实例所以这个
vue 打包文件加版本号防止缓存文件不更新
  因浏览器缓存原因导致vue 打包的文件 导致偶尔会出现不能即使更新最新代码。因此在打包的文件名中添加一个版本号以便浏览器能区分。 解决方法:找到webpack .prod.conf.js    1.定义版本变量: const  Version = new Date().getTime(); // 这里使用的是时间戳 来区分 ,也可以自己定义成别的如:1.1     2.修改要生成的js...
Mybatis 源码学习(七) 缓存的刷新
之前学习了mybatis的一级缓存和二级缓存。那么当数据库数据有跟新的时候,缓存是如何被清除的呢?找到update的实现源码: public int update(String statement, Object parameter) { try { dirty = true; MappedStatement ms = configuration.getMappe...
spring mvc+Mybatis整合shiro 第六章 关于更新缓存权限的几个要点
public void refreshAuth() { try { Ini ini = new Ini(); ini.load(&quot;/static/**=anon&quot;); Section section = ini.getSection(Ini.DEFAULT_SECTION_NAME); s
mybatis使用redis作为自定义缓存的配置
配置mybatis使用redis作为自定义缓存mybatis自身的缓存做的并不完美,但它提供了使用自定义缓存的机会,我们可以选择使用我们喜欢的自定义缓存,下面将介绍一下,使用redis作为mybatis的自定义缓存的具体步骤。 redis和mybatis的下载以及使用这里就不多介绍了(网上都可以学到)1.首先,要想使用mybatis自定义缓存,就必须让自定义缓存类实现mybatis提供的Cache
shop++前台模板页面,修改后不实时更新的原因。
因为shop++的采用了多种缓存技术,ehcache缓存,静态HTML技术,首先需要在后台开启开发模式,关闭模板缓存。   其次,如果是静态页面需要在后台重新生成静态页面。系统的首页,商品,文章,是使用的是静态技术。  最后,如果不是静态页面,只需要在后台,手动的清楚缓存即可。 ...
mybatis操作多对多关系表更新缓存
有时候我们在对mybatis多对多关系表进行操作后,由于使用了Ehcache二级缓存,所以没有对数据库重新读取数据,导致了数据是之前的。对于这种情况,我们可以根据需要对于一些操作禁用掉二级缓存。 &amp;lt;select id=&quot;selectUserByRoleId&quot; parameterType=&quot;int&quot; resultType=&quot;User&quot; useCache=&quot;false&quot;&amp;gt; 所以在对数据表...
php编辑文件后不能立即更新
opcache.revalidate_freq &quot;2&quot; PHP_INI_ALL opcache自动检测文件是否更新的周期,单位秒。 如果是0,则每次请求时opcache都要进行检测。 当validate_timestamps为0时,本指令无效。 opcache.revalidate_freq的原因 ...
小记--关于页面缓存,刷新页面不会获取最新数据问题
个人小记