2012-06-07 51 views
1

我想刪除超列列族的子列。我嘗試了下面的代碼,但當超級列族有很多超級列時它不會工作,它只返回部分超級列。刪除超列家族子列的最佳方法

SuperCfResult<UUID, Long, UUID> superCfResult = sTemplate.querySuperColumns(key); 
Collection<Long> supercolumns = superCfResult.getSuperColumns(); 

另一種方法是建立與範圍內的SuperSliceQuery,將返回所有的超級列,然後環通發現有匹配的一個,並將其刪除。它的作品,但它絕對矯枉過正,並具有性能成本。

有沒有更好的解決方案?

+0

很可能是你的代碼沒有返回所有列的原因是因爲它默認爲100.你需要調用'sTemplate.setCount()'指定一個更高的值。 –

回答

2
Mutator mutator = HFactory.createMutator(keyspace, key_serializer); 
mutator.addSubDelete(key, column_family, supercol, subcol, super_serializer, sub_serializer); 
mutator.execute();