mybatis二级缓存注意点

一、注意点一:

在用户、角色、用户角色关系表 中,各个关系应该放在哪个mapper.xml中。

这个是必须要考虑的,也就是常说的 业务隔离。


mybatis的二级缓存是对应到 namespace的,所以刷新缓存,只会对当前的namespace有效。




现在有个业务:在角色下添加用户。

那么这个添加用户的方法,肯定是放在user_role_mapper.xml中。


紧接着,需要查询某个角色下的用户。

那这个查询用户的方法 是放在哪个xml中呢?

这里就需要慎重考虑了。


如果放在user_mapper.xml  或者 role_mapper.xml里面,这里就有问题了.

第一次查询是没问题的,但是当在某个角色下新增了某个用户,此时缓存刷新只会刷新user_role_mapper.xml相关的。

user_mapper.xml 和 role_mapper.xml是不会刷新的。 所以导致 再次查询,还是之前未添加的数据。


这里就出问题了。

所以 在设计的时候,需要考虑业务的隔离,业务的相关性。以及与代码的整合。





二、注意点二:

            后台用了mybatis的二级缓存,那么缓存中的对象,如果有手动修改对象属性的情况,那么缓存中对象的值也会变化。

意味着,如果第二次请求,获取缓存中的数据,则会获取修改后的数据。

在开发中,要注意。 特别是有些辅助字段的使用,因为有些地方,辅助字段的值会根据不同的情况,进行变化。 

那么这种情况在获取缓存中的值,则需要对辅助字段进行初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值