1

私は非常に気に入っているテンプレートを使用していますが、結果からリストを取得する簡単な方法が見当たらなかったので、このようなものを書きました。機能しますが、おそらくあまり効率的ではありません。私が見つけた方法では、列名を取得し、それを使用して値を抽出する必要があります。

より良い方法はありますか?ありがとう

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;
4

1 に答える 1

0

多分これは良いです。例の1つでそれを見つけました..

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;
于 2012-08-23T06:07:37.690 に答える