我正在使用Oracle Coherence缓存与Java并且遇到问题。当我将某些东西放入缓存(如地图)并使用get调用返回并修改该对象(例如,向地图添加值)时,修改的值不会反映在缓存中。即如果我再次发出get,我会得到相同的旧对象。这与ehcache或dynacache不会发生。Oracle Coherence - 数据更改没有反映在缓存中
我知道我们可以将修改后的地图写回缓存,但我想知道是否有一些配置可以在coherence config 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仍然只有一个入口。