private void afterDataAccess(CacheResult cacheResult, Object[] args) throws CacheUnreachableException {
		CacheDefinition cacheDefinition = cacheDefinitionCollection.getCacheDefinition();
		// 如果不是缓存获取操作，则只需要进行简单的缓存删除和版本信息更新
		if (cacheDefinition == null) {
			updateVersion(args);
			deleteCache(args);
			return;
		}
		// 对于没有命中的缓存，需要进行缓存的更新以及版本信息的重新构建。
		String key = cacheResult.getKey();
		Object exeResult = cacheResult.getRetVal();
		Cache cache = cacheResult.getCache();
		// 版本信息的重新构建
		cacheResult = recacheVersionKey(cacheResult, args, cacheDefinition);

		long expire = cacheDefinition.getExpire();

		long currentVersion = cacheResult.getCurrentVersion();
		// 缓存查询结果
		CacheObject newItem = new CacheObject((Serializable) exeResult, currentVersion);
		cache.add(key, newItem, expire);
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("缓存对象到[" + key + "],缓存时间[" + expire + "]毫秒");
		}
		// 如果是分页查询还需要缓存分页相关信息
		if (cacheDefinition.isReturnCollection()) {
			Page page = cacheDefinition.getPageArgument(args);
			// 如果分页对象为空，表示此分页被复用与不分页的情况了，需要加以区分
			if (page != null) {
				String pageKey = cacheResult.getPageKey();
				// 如果在beforeDataAccess执行过程中已经产生了pageKey就不需要重复生成了
				if (pageKey == null) {
					pageKey = cacheDefinition.generatePageKey(args, key);
				}
				if (!StringUtils.isEmpty(pageKey)) {
					cache.add(pageKey, page, expire);
					if (LOGGER.isDebugEnabled()) {
						LOGGER.debug("缓存为需要分页的缓存,页码[" + page.getCurpage() + "],缓存分页对象到[" + pageKey + "], 缓存时间["
								+ expire + "]毫秒");
					}
				}
			}
		}

	}