Единственный обходной путь, который я вижу, - это создание другого экземпляра Cache с целью сохранения под известным ключом объекта, содержащего ключи, или любой более сложной структуры.
Эта структура изменена в методах onPut () и onRemove () используемого CacheListener:
public void onRemove(Object key)
{
LOG.log(Level.INFO, key.toString());
Map<Integer, Date> realEstateIdByDate = (Map<Integer, Date>) keyCache.get("realEstateIdByDate");
realEstateIdByDate.remove(key);
keyCache.put("realEstateIdByDate", realEstateIdByDate);
}
@Override
public void onPut(Object object)
{
LOG.log(Level.INFO, object.toString());
Map<Integer, Date> realEstateIdByDate = (Map<Integer, Date>) keyCache.get("realEstateIdByDate");
realEstateIdByDate.put(((RealEstateAd)object).getRealEstateId(), new Date());
keyCache.put("realEstateIdByDate", realEstateIdByDate);
}
Любые отзывы более чем приветствуются; -)