Disons que j'ai les objets suivants:Mise à jour des données relationnelles dans Hazelcast
Bar bar = new Bar();
bar.setX(3);
Foo foo = new Foo();
foo.setY(4);
foo.setBar(bar);
hzFooMap.put(1, foo);
hzBarMap.put(1, bar);
Avec le code ci-dessus, Hazelcast va perdre la relation entre foo et bar. Comme dans, si je mets à jour la barre, puis foo ne sera pas mis à jour aussi bien comme ceci:
Bar sameBar = hzBarMap.get(1);
sameBar.setX(20);
hzBarMap.put(1, sameBar);
Foo sameFoo = hzFooMap.get(1);
dans l'exemple ci-dessus, sameFoo.bar.x n'a jamais été mis à jour avec la nouvelle valeur de 20. Est-il possible en Hazelcast pour avoir toutes les instances mises à jour?
Je pourrais écrire mon propre moteur qui se souvient où tout est stocké et met à jour CHAQUE instance de chaque objet que je trouve, mais cela rendrait les écritures trop chères. Ou je pourrais faire des pointeurs entre les cartes, mais cela ralentirait les lectures ... Toute aide pour résoudre ce problème serait grandement appréciée!
Est-ce que HZ autorise les appels récursifs à map.get()? Par exemple, si j'essayais de faire un super pointeur, il faudrait que je rassemble l'objet avant de revenir de map.get (...). J'ai essayé ceci dans le passé une got des erreurs de threadstateexcepton dues à un fil unique essayant d'accéder à plusieurs partitions – user972276