一级缓存的情况下,tempEntity1 == tempEntity2是true,但是二级缓存输出的是false,这是为什么呢?两个都是从缓存获取的不是应该输出true吗?
二级缓存默认是可读写的,在可读写的情况下会用序列化缓存SerializedCache来装饰,在存入和获取的时候会对数据对象进行序列化和反序列化,返回的是一个新的对象。所以使用二级缓存的实体类必须实现序列化接口
,
一级缓存是因为是同一个sqlsession里面的,最终用的是同一个map作缓存,但是二级缓存,视频里面使用的是两个sqlsessionfactory,每个sqlsessionfactory独占一个configuration,缓存最终是包含在configuration里面,最终用的是各自的map,自然不能直接相等