基于hibernate二级缓存的论坛缓存方案
前言
hibernate查询缓存很难用,更新某个实体后会导致与此实体相关的所有查询缓存失效,很不爽;
此方案建立在hibernate二级缓存的基础上
目的
缓存帖子的每一页(即回帖)
何时写缓存?何时清理缓存?
读取帖子第N页是缓存之,有回帖 修改回帖 删除回帖时清理缓存
缓存结构
//构造一个Page对象private Page<ThreadPost> buildPage(int pageNo, int pageSize, Integer postNum, String postIdString){if(StringUtils.isBlank(postIdString)){return Page.EMPTY_PAGE;}List<ThreadPost> list = new ArrayList<ThreadPost>(postIdString.length());for(String postId : postIdString.split("#")){//[color=red]从hibernate二级缓存中读取[/color]list.add(threadPostManager.get(Integer.valueOf(postId)));}return new Page<ThreadPost>(pageNo, postNum, pageSize, list);} 1 楼 dizdev 2009-09-09 great!