我正在使用我非常喜欢的模板,但没有看到从结果中获取列表的直接方式,所以写了这样的东西。它工作但可能效率不高。使用我发现的方法,我必须得到列名,然后使用它来提取值。
有更好的方法吗? 感谢
HSlicePredicate<String> slice=new HSlicePredicate<String>(StringSerializer.get());
slice.setCount(pagesize+1);
slice.setStartOn(startUserKey);
ColumnFamilyResult<UUID, String> res = blogFollowingUsersTemplate.queryColumns(blogId,slice);
BlogFollowingUsers users=new BlogFollowingUsers();
users.setBlogId(blogId);
List<UserCompact> list=new ArrayList<UserCompact>();
for (Iterator iterator = res.getColumnNames().iterator(); iterator.hasNext();) {
list.add((UserCompact) Json.fromJson(res.getString(iterator.next().toString()),UserCompact.class));
}
users.setUsers(list);
return users;
答案 0 :(得分:0)
也许这样更好。在其中一个例子中找到了它。
SliceQuery<UUID, String, String> query = HFactory.createSliceQuery(daoUtil.getKeyspace(), UUIDSerializer.get(),
StringSerializer.get(), StringSerializer.get()).
setKey(blogId).setColumnFamily("BlogFollowingUsers");
ColumnSliceIterator<UUID, String, String> iterator =
new ColumnSliceIterator<UUID, String, String>(query, startUserKey, "", false, pagesize+1);
BlogFollowingUsers users=new BlogFollowingUsers();
users.setBlogId(blogId);
List<UserCompact> list=new ArrayList<UserCompact>();
while (iterator.hasNext()) {
list.add((UserCompact) Json.fromJson(iterator.next().getValue(), UserCompact.class));
}
users.setUsers(list);
return users;