一级缓存和二级缓存,对象不相等?

来源:3-3 mybatis二级缓存生命周期

草鱼禾

2020-05-21 10:21

一级缓存的情况下,tempEntity1 == tempEntity2是true,但是二级缓存输出的是false,这是为什么呢?两个都是从缓存获取的不是应该输出true吗?

写回答 关注

2回答

  • qq_慕神0568869
    2020-06-09 22:57:20

    二级缓存默认是可读写的,在可读写的情况下会用序列化缓存SerializedCache来装饰,在存入和获取的时候会对数据对象进行序列化和反序列化,返回的是一个新的对象。所以使用二级缓存的实体类必须实现序列化接口


  • 时间的痕迹
    2020-05-25 14:56:09

    一级缓存是因为是同一个sqlsession里面的,最终用的是同一个map作缓存,但是二级缓存,视频里面使用的是两个sqlsessionfactory,每个sqlsessionfactory独占一个configuration,缓存最终是包含在configuration里面,最终用的是各自的map,自然不能直接相等

    慕仔3163...

    下面有个同学回答的才是正确的,你这个回答是错误的。

    2020-09-01 17:21:01

    共 2 条回复 >

Mybatis缓存详解

学习mybatis一级缓存、二级缓存及自定义缓存的使用

8040 学习 · 22 问题

查看课程

相似问题