我正在要求在cassandra中创建一个包含Map列表的表的可能性!像这样:
CREATE TABLE IF NOT EXISTS agence(
id timeuuid,
code text,
libelle text,
adresse set<frozen<map<text,text>>>,
conseillers set<frozen<map<text,text>>>,
compagnie_id timeuuid,
...
在Spring Data中,我有以下查询:
findAll()
然后我收到此错误:
Query; CQL [SELECT * FROM agence;]; Codec not found for requested operation: [map<varchar, varchar> <-> java.util.Map]
我不知道cassandra是否配置错误或使用不当!
请问有人有建议吗?
答案 0 :(得分:0)
最后我得到一个解决方案:
/** The conseillers. */
@Column(value = "conseillers")
@Frozen
@FrozenKey
@FrozenValue
private Set<Map<String, String>> conseillers;
像这样,我们可以映射地图<-> java.util.Map
for(Row row : cassandraOperations.select("SELECT conseillers FROM agence", Row.class)){
Set<Map<String, String>> info = mapperCassandra(row, "conseillers");
}
}
private Set<Map<String, String>> mapperCassandra(Row row, String type) {
return row.getSet(type, TypeTokens.mapOf(TypeToken.of(String.class), TypeToken.of(String
.class)));
}