ContexteEntityPersister de Astyanax & Collection Mises à jour
Entité Persister de Astyanax enregistre une carte d'une entité dans plusieurs colonnes. Le format est mapVariable.key
Le problème:
Entité Persister ne supprime pas supprimé paires clé/valeur de Kassandra de la astyanax quand une carte dans une entité a été mis à jour
La solution J'utilise maintenant (mauvaise approche)
Je supprimer toute la ligne, puis réinsérez
Some More Info
Je persiste mes objets java dans cassandra en utilisant Entity Persister d'astyanax (com.netflix.astyanax.entitystore). Ce que j'ai noté est que quand la carte d'une entité est persistante avec, disons, 2 valeurs: testkey: testvalue & testkey2: testvalue2, et la prochaine fois que la même carte d'entité est persistante avec une valeur (une clé/valeur paire a été supprimée): testkey: testvalue, testkey2: testvalue2 n'est pas supprimé de la famille de colonnes. Donc, en tant que solution de rechange, j'ai besoin de supprimer toute la ligne, puis de la réinsérer.
Mon code d'insertion:
final EntityManager<T, String> entityManager = new DefaultEntityManager.Builder<T, String>()
.withEntityType(clazz)
.withKeyspace(getKeyspace())
.withColumnFamily(columnFamily)
.build();
entityManager.put(entity);
Qu'est-ce que je manque? C'est vraiment inefficace et je pense que l'entité persiste d'astyanax est censée prendre soin de cela par elle-même.
Des pensées?