code: public M findFirstByCache(String cacheName, Object key, String sql, Object... paras) {
  		ICache cache = _getConfig().getCache();
  		M result = cache.get(cacheName, key);
  		if (result == null) {
  			result = findFirst(sql, paras);
  			cache.put(cacheName, key, result);
  		}
  		return result;
  	}
docs: Find first model by cache. I recommend add "limit 1" in your sql.
  @see #findFirst(String, Object...)
  @param cacheName the cache name
  @param key the key used to get data from cache
  @param sql an SQL statement that may contain one or more '?' IN parameter placeholders
  @param paras the parameters of sql