3

J'ai une instance de noisetier et j'en reçois une carte.Collections imbriquées dans Hazelcast IMap

IMap<Object,Object> cache= hazelCastInstance.getMap(collectionName); 

Je veux stocker une collection imbriquée (par exemple la liste < Liste < Définition>>) en elle.

Définition => Classe (Ceci implémente sérialisable)

cache.set(cacheKey, object, ttl,TimeUnit.SECONDS); 

cacheKey => clé unique

objet => collection imbriquée

ttl => temps vivre

Je reçois une exception: java.io.NotSerializableException: java.util.ArrayList $ subList

J'utilise Hazelcast pour la première fois. Est-ce que quelqu'un a une idée pourquoi est-ce?

Veuillez nous consulter.

Merci

Répondre

0

L'erreur est causée par la ArrayList $ ne pas être sous-liste sérialisable. Il peut être résolu en remplaçant votre code par quelque chose comme ceci:

cache.set(cacheKey, new ArrayList(objects), ttl, SECONDS) 

Maintenant, vous vous êtes débarrassé de la classe intérieure qui est à l'origine des problèmes. Le contenu de la sous-liste sera copié dans une ArrayList normale et il n'y aura pas de problèmes de sérialisation.

+0

Merci pour la réponse. C'était une erreur fondamentale. La liste imbriquée a été créée à l'aide de la méthode list.subList(). C'était la raison pour laquelle elle échouait. – Vivek