我正在使用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仍然只有一個入口。