EHCache を defaultCache (要素用)、StandardQueryCache (クエリ用)、および UpdateTimestampsCache (データベースの更新を追跡するためのものと思われるため) で構成しましたが、正確に何をするのかわかりません)。
これらのキャッシュごとに maxElementsInMemory を設定しましたが、取得できないのは、この数値が StandardQueryCache と UpdateTimestampsCache に対して何を制御するかです。デフォルト キャッシュにキャッシュできるエンティティの数は 10000 を超えてはならないことがわかりましたが、クエリ キャッシュは要素をキャッシュしません。主キーをキャッシュします(私が理解している限り)。
これは、StandardQueryCache の maxElementsInMemory が結果からの「行」の数を制御することを意味するのでしょうか、それとも要素の主キー ペアの数を制御するのでしょうか?
UpdateTimestampsCache はどうですか? エンティティが最後に更新された時刻、テーブルが最後に更新された時刻、またはその他の何かを追跡しますか? この maxElementsInMemory には何を使用すればよいですか?
ありがとう!
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</defaultCache>
<cache
name="org.hibernate.cache.internal.StandardQueryCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</cache>
<cache
name="org.hibernate.cache.spi.UpdateTimestampsCache"
maxElementsInMemory="10000"
eternal="true">
</cache>
</ehcache>