该项目是SpringBoot项目,
查询列表时,我在Controller层时加了分页,在Mapper层加了缓存注解
然后当使用Mapper层访问其他的业务时就报错了,比如我查询版本信息,结果在查询语句后面就自动加上了分页的参数。
当我把那个缓存注解去掉后就正常了。
错误原因:有可能是redis将mybatis的参数缓存下来了
求大神帮忙解决这个问题啊!!!!!!!!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
<p>缓存不建议放在mapper层</p>
因为在service层里面还需要对查出来的数据进行处理,数据是动态改变的,所以只能将缓存放在mapper层。如果放在service层,那我就要每次调用那个方法的时候都要删缓存,再放缓存到redis,这样还不如不加
<p>分页的代码放在service 层里面,在需要调用mapper前。另外,缓存指好好key,参数最好用对象传进去。</p>
额,我一直都是在controller层写的分页,我项目经理也没说啥,然后刚刚百度了一下,还真是最好放在service层,受教了!!!
<p>你这样写代码,要是在我们公司应该会被开除。</p>