哇哈哈的gravatar头像
哇哈哈 2015-11-05 09:19:52

spring整合ehcache缓存框架如何使用@Cacheable注解更新数据库查询结果?

spring结合ehcache利用注解实现缓存,对查询方法加入缓存,在缓存生命周期内,对刚才查询的表进行了增删改操作,这是需要对查询的缓存进行更新,这个怎么处理?若有两个查询,对同一张表,查询条件不同,这是可以利用@Cacheable指定自定义的key或默认的key,这时,同样对该表进行了增删改,这种情况下又该怎么更新查询的缓存?

所有回答列表(2)
最代码官方的gravatar头像
最代码官方  LV167 2015年11月9日

对于cache的设计可以有2种数据结构:

1.分页查询返回的list数据

2.查询返回的单model数据

list的设计有2种情况分别对待

1.如果list经常变化的数据建议不要cache结果,而是直接从db查询返回model.id的list数据,然后走第2种model的cache,这样折中的解决了既需要cache又能动态返回list数据的需求。

2.对于list不经常变化的数据,可以cache整个list数据,然后有变化时通过@CacheEvict删除数据重建即可

参考资料:

ehcache如何对复杂不定条件的java查询方法进行缓存?

spring整合ehcache的入门级别demo分享,通过junit来测试

spring整合hibernate+ehcache实现最简单的入门代码demo实例,对初学者很有帮助

评论(5) 最佳答案
xkx052170的gravatar头像
xkx052170  LV9 2015年11月5日

记得好像是删除再新建吧

最近浏览
penghongyou  LV2 2021年3月5日
Yoohuptr 2021年1月11日
暂无贡献等级
shunwei  LV7 2020年3月25日
xiao902  LV1 2019年12月30日
疯魔嗤笑 2019年11月15日
暂无贡献等级
Samuel_Soong  LV8 2019年10月26日
zhaoyangwfd  LV17 2019年8月19日
heliangxiaofang 2019年6月19日
暂无贡献等级
辉辉辉辉辉辉  LV10 2019年6月11日
蒋元征  LV4 2019年2月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友