私の理解によると、hazelcast にはすぐに使用できるサポートはありません。以下は、私が考えることができるいくつかの回避策です。
- 追加情報 (マップ名、データの保存方法など) をコンテキスト オブジェクトにカプセル化し、キーに対して別の Java マップに保存します。後で MapStore 実装でこのマップを使用して、キーと値のペアを永続化するのに役立つそれぞれの情報を取得します。
置くと操作が似てくるかもしれません。
hzMap.put(key, value);
Context context = new Context();
context.setHowToStoreData();
context.setMapName();
// any othe rother information
context.xxx();
// create a unique context key which can be later deduced from (key,value) pair.
contextKey = getUniqueContextKey(key, value);
contextMap.put(contextKey, context);
MapStore の実装では、この contextMap を使用して追加の値を取得できます。
- 2 番目の方法は、(キー、値) ペア内に情報をカプセル化することです。CacheEntry という新しいクラスを作成して、キャッシュ値と追加情報を格納できます。その後、キャッシュ値と追加情報を iMap 自体から取得できます。
置くと操作が似てくるかもしれません。
CacheEntry<YourValueClass> cacheEntry = new CacheEntry<YourValueClass>();
cacheEntry.setValue(value);
cacheEntry.howToStoreData(..);
cacheEntry.setMapName(..);
imap.put(key, cacheEntry);
MapStore の実装では、値 (CacheEntry オブジェクト) 自体を使用して、実際のvalue
( のインスタンスYourValueClass
) だけでなく追加情報も取得できます。