code: @SuppressWarnings("unchecked")
  	private String genarateQueryCacheKey(String keyPattern,Object param){
  		if(param instanceof Map){
  			Map<String, Object> map = (Map<String, Object>) param;
  			Object[] args = new String[map.size()/2];
  			if(map.containsKey(STR_COLLECTION) || map.containsKey(STR_LIST)){
  				args[0] = CacheKeyUtils.toString(map.containsKey(STR_COLLECTION) ? map.get(STR_COLLECTION) : map.get(STR_LIST));
  			}else{				
  				for (int i = 0; i < args.length; i++) {
  					args[i] = CacheKeyUtils.toString(map.get(STR_PARAM + (i+1)));
  				}
  			}
  			return String.format(keyPattern, args);
  		}else if(param instanceof BaseEntity){
  			Serializable id = ((BaseEntity)param).getId();
  			if(id != null && !"0".equals(id.toString())){				
  				return String.format(keyPattern, ((BaseEntity)param).getId());
  			}else{
  				return String.format(keyPattern, CacheKeyUtils.toString(param));
  			}
  		}else if(param instanceof Object[]){
  			return String.format(keyPattern, (Object[])param);
  		}else{
  			return param == null ? keyPattern : String.format(keyPattern, CacheKeyUtils.toString(param));
  		}
  	}
docs: 生成查询缓存key
  @param cacheInfo
  @param param
  @return