なぜMyBatisキャッシュを無効にしましたか?


private void putAncestor(CacheKey rowKey, Object resultObject, String resultMapId, String columnPrefix) {
    if (!ancestorColumnPrefix.containsKey(resultMapId)) {
      ancestorColumnPrefix.put(resultMapId, columnPrefix);
    }
    ancestorObjects.put(rowKey, resultObject);
  }


if (combinedKey != CacheKey.NULL_CACHE_KEY) nestedResultObjects.put(combinedKey, resultObject);


mybatisキャッシュの対象は、データベースreult SetがDefault Result SetHandler処理を経て生成したjavaオブジェクトです.
 このようにキャッシュする意味は大きくないです.
(1)電子商取引のウェブサイトに一定の規模のデータ量があり、内蔵のcache方式は役に立ちません.キャッシュオブジェクトは意味がないのに、なぜMemcachedが、redisは単一のタイプをサポートしていないのですか?(2)クエリーの結果集をキャッシュすることはMyBatisフレームが得意ではなく、sql mapperという特性に専念するべきです.このフレームを採用したアプリはキャッシュを構築するのにもっと合理的で、例えばredis、memcachedを採用します.
 ですから、私たちはmybatisを使って、結果を目的に集めたマッピング機能です.
キャッシュの設定を無効にします.
<configuration>
	<settings>
		<setting name="cacheEnabled" value="false"/>
		<setting name="localCacheScope" value="STATEMENT"/>
		<setting name="jdbcTypeForNull" value="NULL"/>
	</settings>

	<mappers>
		<mapper resource=""/>
	</mappers>

</configuration>