我正在尝试使用Astyanax访问地图列类型。 从我的例子中我已经采取了以下措施。我正在循环行,并且可以从除了具有数据类型MAP的列storename之外的所有列获取数据。我假设我需要循环遍历地图的元素以将数据导入我的对象,但我无法弄清楚如何从列中获取地图数据。
我正在尝试使用column.getValue并尝试过getByteBuffer,但无法使用。我可以得到一个列对象,我看到有一个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);
}
我对getValue()有点困惑,因为它需要一个Serializer作为它的第二个参数,而默认值是它的第三个。如何将MapSerializer作为第二个参数传递,或者我应该使用getValue()方法?默认值是Map中的键值吗?如果我想在地图中返回所有值呢?感谢。
答案 0 :(得分:0)
最后这对我有用。我能够使用为looping maps here.
提供的技术遍历地图中的条目Map<String, String> map = columns.getValue("storename",
new MapSerializer<String, String>(UTF8Type.instance, UTF8Type.instance)
, new HashMap<String ,String>());