这里的命名空间怎么理解

这里的命名空间怎么理解

http://img1.sycdn.imooc.com//climg/5fc0fc8309a83c6018630870.jpg

这里一个session对象是一个一级缓存,然后通过如下测试验证了缓存的存在

http://img1.sycdn.imooc.com//climg/5fc0fc60092d639e14330242.jpg

问题:如果这里的同一个session对象,如果又调用了另一个表的查询如:

session.selectOne("category.selectById",123);

那么是否表示这个一级缓存可以跨越命名空间保存查询觉果呢。我的理解是一个session对象拥有一个存放缓存的空间,这个空间和命名空间无关,可以任意存放信息

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,这里关于一级缓存的理解有些问题,已对之前的回答进行了修改,建议同学重新查看。

二级缓存是相对于namespace而言,多个sqlSession共享一个namespace。如果跨命名空间,也需要再次查询,不能算使用缓存。

祝学习愉快~

好帮手慕阿满 2020-11-28 11:39:58

同学你好,一级缓存只是相对于同一个SqlSession而言。在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL。跨命名空间访问,参数和sql都不同,需要再次查询,不能算使用缓存。

祝学习愉快~

  • 提问者 源治泷谷 #1

    但是二级缓存能跨命名空间吗,二级缓存是按命名空间划分的吗

    2020-11-28 17:41:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师