2016-09-23 5 views
3

からマップを読み込むことができません:は、以下のように私のテーブルの一つに、私はマップを使用していますカサンドラ

media map<UUID, frozen<map<int, varchar>>> 

私は正常にこのマップに/更新を挿入することができたAlhough、それから読み取ることができませんでした。私はdatastaxのJavaドライバ3.0.0

を使用しています

これまでのところ私はこの試みている:

Map<UUID, Map> media = row.getMap("media", UUID.class, Map.class); 

をしかし、この行は、例外の下に示します:

com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [map<int, varchar> <-> java.util.Map] 

私はから読み取ることができますどのようにこのフィールド?

答えて

0

GettableByNameData.getMap(String, Class, Class)メソッドを使用しようとしています。その代わりに、Mapのような複雑なデータ型を取得するには、GettableByNameData.getMap(String, TypeToken, TypeToken)メソッドを使用できます。

import com.google.common.reflect.TypeToken; 

TypeToken uuidToken = new TypeToken<UUID>() {}; 
TypeToken mapToken = new TypeToken<Map<Integer, String>>() {}; 

Map<UUID, Map<Integer, String>> media = row.getMap("media", uuidToken, mapToken); 
+0

ありがとうございます。できます.. –

関連する問題