背景
Astyanax 的 Entity Persister 将 Entity 的 Map 保存在多个列中。格式为 mapVariable.key
问题:
当实体中的地图已更新时,astyanax 的实体持久性不会从 cassandra 中删除已删除的键/值对
我现在使用的解决方案(不好的方法)
我正在删除整行,然后重新插入
更多信息
我使用 astyanax 的 Entity Persister (com.netflix.astyanax.entitystore) 将我的 java 对象保存在 cassandra 中。
我注意到的是,当一个实体的映射被持久化时,比如说,2个值:testkey:testvalue & testkey2:testvalue2,下一次同一个实体的映射被一个值持久化(一个键/值对被删除) : testkey:testvalue, testkey2:testvalue2 不会从列族中删除。
因此,作为一种解决方法,我需要删除整行然后重新插入。
我的插入代码:
final EntityManager<T, String> entityManager = new DefaultEntityManager.Builder<T, String>()
.withEntityType(clazz)
.withKeyspace(getKeyspace())
.withColumnFamily(columnFamily)
.build();
entityManager.put(entity);
我错过了什么?这真的是低效的,我认为 astyanax 的实体持久化器应该自己处理这个问题。
有什么想法吗?