J'utilise le cache Oracle Coherence avec Java et je rencontre un problème. Lorsque je mets quelque chose dans le cache (comme une carte) et que je le récupère en utilisant un appel get puis que je modifie l'objet (disons, ajouter une valeur à la carte), la valeur modifiée n'est pas reflétée dans le cache. c'est-à-dire que si j'émets un get encore, j'obtiendrai le même objet ancien. Cela ne se produit pas avec ehcache ou dynacache. Je sais que nous pouvons réécrire la carte modifiée dans le cache, mais je voulais savoir s'il y a une configuration que nous pouvons faire dans le fichier de configuration de la cohérence xml.Oracle Coherence - Les données ne sont pas reflétées dans le cache
Exemple de code:
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);
Après l'exécution, myFinMap a encore qu'une seule entrée.