2016-06-10 37 views
0

我有一個卡桑德拉表是這樣的:如何從卡桑德拉獲得嵌套地圖結果集

create table Engine (
    primayval text, 
    Dataval map<text,<map<text, double>>, 
    PRIMARY KEY (tradeddate) 
); 

我如何使用ResultSet-> getMap()沒有JSON轉換一個Java嵌套地圖Map<String,Map<String,Double>>檢索此?

回答

1

被證明是非常簡單:

Map<String, Map<String,Double>> DataVal; 
    Row rw = resultSet.one(); 
    DataVal=(rw.getMap("DataVal", TypeToken.of(String.class),new TypeToken<Map<String,Double>>() {})); 
+0

爲了完整,還可以寫DataVal =(rw.get( 「DataVal」,TypeTokens.mapOf(TypeToken.of(String.class),TypeTokens .mapOf(String.class,Double.class))))。 TypeTokens是Java驅動程序中的一個實用程序類,通常會減少冗長的代碼(但我承認,不是這樣)。無論您選擇哪種方式,緩存您的TypeToken實例(作爲常量字段)以避免不必要的分配是一種很好的做法。 – adutra