一、注意点一:
在用户、角色、用户角色关系表 中,各个关系应该放在哪个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的二级缓存,那么缓存中的对象,如果有手动修改对象属性的情况,那么缓存中对象的值也会变化。
意味着,如果第二次请求,获取缓存中的数据,则会获取修改后的数据。
在开发中,要注意。 特别是有些辅助字段的使用,因为有些地方,辅助字段的值会根据不同的情况,进行变化。
那么这种情况在获取缓存中的值,则需要对辅助字段进行初始化。