0

Hibernate アプリの L2 キャッシュとして infinispan を使用する予定です。私のすべてのエンティティには、ライフサイクル属性 [新規 -> 実行 -> 完了] があります。最初は私のエンティティは新しい状態にあり、時間が経つと他の状態に移動します。

単純に、エンティティのライフサイクル属性のステータスが Completed 状態になったときにエンティティをキャッシュから削除したいと考えています。私の理解では、Infinispan はカスタム エビクション ポリシーをサポートしていません。私の状況を処理する最善の方法は何ですか?

4

1 に答える 1

1

evict(key)キャッシュ APIのメソッドを適切なタイミングで使用して、独自のロジックを実装します。

public void evict(K キー)

キャッシュのメモリからエントリを削除します。エントリーは、クラスター内の構成済みキャッシュ・ストアまたはその他のキャッシュからは削除されないことに注意してください (クラスター・モードで使用されている場合)。Cache.remove(Object) を使用して、キャッシュ システム全体からエントリを削除します。

エンティティが"key1"Completed 状態に達するとispnCache.evict("key1");、立ち退きのために発砲できます。

于 2013-05-18T06:41:46.157 に答える