Я использую кэш Oracle Coherence с Java и столкнулся с проблемой.Когда я помещаю что-то в кеш (например, карту) и получаю его обратно с помощью вызова get, а затем изменяю объект (скажем, добавляем значение на карту), измененное значение не отражается в кеше.то есть, если я выпущу get снова, я получу тот же старый объект.Это не происходит с ehcache или dynacache.
Я знаю, что мы можем записать измененную карту обратно в кэш, но я хотел знать, есть ли какая-то конфигурация, которую мы можем сделать в конфигурации когерентности xml.
Пример кода:
ConcurrentHashMap<String, String> myMap = new ConcurrentHashMap<String, String>();
myMap.put("Hello", "World");
cache.put("myMap", myMap);
ConcurrentHashMap<String, String> myExMap = (ConcurrentHashMap<String, String>)cache.get("myMap");
myExMap.put("Once", "More");
ConcurrentHashMap<String, String> myFinMap = (ConcurrentHashMap<String, String>) cache.get("myMap");
System.out.println(myFinMap);
После выполнения myFinMap по-прежнему имеет только одну запись.