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