Map Astyanax地图数据访问cql3

Map Astyanax地图数据访问cql3,map,cassandra,astyanax,cql3,Map,Cassandra,Astyanax,Cql3,我正在尝试使用Astyanax访问映射列类型。 从下面的例子中,我采取了以下措施。我正在循环行,可以从所有列中获取数据,除了具有数据类型映射的列storename。我假设我需要循环映射元素以将数据获取到对象中,但我不知道如何从列中获取映射数据 我正在尝试column.getValue并尝试了getByteBuffer,但两者都无法正常工作。我可以得到一个column对象,我看到有一个ColumnMap接口,但我不知道如何将数据获取到一个扩展或使用它的对象中。我也看到了MapSerializer接

我正在尝试使用Astyanax访问映射列类型。 从下面的例子中,我采取了以下措施。我正在循环行,可以从所有列中获取数据,除了具有数据类型映射的列storename。我假设我需要循环映射元素以将数据获取到对象中,但我不知道如何从列中获取映射数据

我正在尝试column.getValue并尝试了getByteBuffer,但两者都无法正常工作。我可以得到一个column对象,我看到有一个ColumnMap接口,但我不知道如何将数据获取到一个扩展或使用它的对象中。我也看到了MapSerializer接口,但不知道如何实现它

        List<Store> stores = new ArrayList<Store>();

        for (Row<Integer, String> row : result.getResult().getRows()) {

            Store store = new Store();

            ColumnList<String> columns = row.getColumns();

            store.setStoreID(columns.getStringValue("store_id", null));
            store.setShopName(columns.getStringValue("shopname", null));

            // lost trying to get the columns Map data here
            // should I loop the map or pass the data straight to my store object as a map?
            // How do I access the map data in this column?
            for ( Map<String, String> map : columns.getValue("storename", imap, result).getResult() )
            {
                store.setStoreNames( "lang", "storename");
            }

            stores.add(store);
        }
List stores=new ArrayList();
for(行:result.getResult().getRows()){
Store Store=新商店();
ColumnList columns=row.getColumns();
store.setStoreID(columns.getStringValue(“store_id”,null));
store.setShopName(columns.getStringValue(“shopname”,null));
//在此处获取列映射数据时丢失
//我应该循环映射还是将数据作为映射直接传递到我的存储对象?
//如何访问此列中的地图数据?
对于(映射:columns.getValue(“storename”、imap、result).getResult())
{
store.setstorename(“lang”、“storename”);
}
存储。添加(存储);
}

我对getValue()有点困惑,因为它将序列化程序作为第二个参数,将默认值作为第三个参数。如何将MapSerializer作为第二个参数传入,或者我甚至应该使用getValue()方法?默认值是否为映射中的键值?如果我想返回映射中的所有值,那怎么办?谢谢。

最后,这对我起了作用。我能够使用提供的技术循环浏览地图中的条目

Map Map=columns.getValue(“storename”,
新的MapSerializer(UTF8Type.instance、UTF8Type.instance)
,新的HashMap());
Map<String, String> map = columns.getValue("storename", 
                    new MapSerializer<String, String>(UTF8Type.instance, UTF8Type.instance)
                    , new HashMap<String ,String>());