首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mybatis-plus如何禁用一级缓存

    ,而不会进行数据库查询 04问题破解 从源码可以得知,原生的mybatis默认会走本地缓存,即所谓的一级缓存,而mybatis-plus作为mybatis的增强版,其逻辑和mybatis原生逻辑是一样的...那如何禁用mybatis-plus的一级缓存呢,从源码分析,我们可以得知,当list为空时,则不会走缓存,而会查询数据。...而list的缓存取值,来源于this.localCache.getObject(key)。...因此禁用缓存的逆向思维就是要么清空localCache,要么就是变更key,使this.localCache.getObject(key)取到的值为null。...(String) 这样每次产生的sql就会不一样,导致取到不一样key,进而使this.localCache.getObject(key)为空,这样就可以让mybatis每次都进行数据库查询,从而达到禁用一级缓存的目的

    2K40

    mybatis-plus如何禁用一级缓存

    ,而不会进行数据库查询 问题破解 从源码可以得知,原生的mybatis默认会走本地缓存,即所谓的一级缓存,而mybatis-plus作为mybatis的增强版,其逻辑和mybatis原生逻辑是一样的。...那如何禁用mybatis-plus的一级缓存呢,从源码分析,我们可以得知,当list为空时,则不会走缓存,而会查询数据。...而list的缓存取值,来源于 this.localCache.getObject(key)。...因此禁用缓存的逆向思维就是要么清空localCache,要么就是变更key,使this.localCache.getObject(key)取到的值为null。...(String) 这样每次产生的sql就会不一样,导致取到不一样key,进而使this.localCache.getObject(key)为空,这样就可以让mybatis每次都进行数据库查询,从而达到禁用一级缓存的目的

    2.4K20

    Spring Data Redis对象缓存序列化问题

    在使用时,有没有遇到同我一样,对象缓存序列化问题的呢?那么,你又是如何解决的呢?...在我们需要缓存的方法上,使用 @Cacheable 注解,就表示如果返回的对象不是 null 时,就会对其进行缓存,下次查询,首先会去缓存中查询,查到了,就直接返回,不会再去数据库查询,查不到,再去数据库查询...使用启用缓存注解(@EnableCaching)。需要缓存的对象实现 Serializable 接口。使用 @Cacheable 注解缓存查询的结果。...遇到问题在上面我们通过 spring boot 提供的 redis 实现了查询对象缓存这样一个功能,有下面几个问题:缓存的对象,必须序列化,不然会报错。...(using = LocalDateTimeSerializer.class) // 序列化private LocalDateTime createDateTime;这样就可以了,我们看下redis

    1.1K10

    本地缓存不一致-记Jackson的MapSerializer序列化

    seller-center应用使用的redisson用的jackson序列化 jackson序列化map时有坑 当map中的key是Integer类型对应的序列化执行器StdKeySerializers...序列化后以string存储 value是integer类型对应的序列化执行器NumberSerializers序列化后还是integer jackson的map序列化核心逻辑 com.fasterxml.jackson.databind.ser.std.MapSerializer...--------------------------------- 分隔线 ------------------------------------- 艰难出坑-问题排查: 查询运费险接口实现加了本地缓存...缓存结构 本地缓存 -> redis -> DB 一层一层从上往下捞数据, 捞到数据再从下往上设置数据 ?...map 被jackson序列化后成了 {"@class":"java.util.HashMap","1":0,"2":0} 规范 如非必要不要把map用与缓存 如非必要不要把

    1.5K20
    领券