Spring Data & Cassandra CQL,我们可以创建 table 有一个地图列表,然后查询它吗?

Spring Data & Cassandra CQL, can we create table that have a List of Map, then query it?

我要求在 cassandra 中创建包含地图列表的 table 的可能性!像那样:

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 数据中我有这个查询:

findAll()

然后我得到这个错误:

Query; CQL [SELECT * FROM agence;]; Codec not found for requested operation: [map<varchar, varchar> <-> java.util.Map]

不知道是cassandra配置不好还是使用不好!!

有人有什么建议吗?

最后我得到了一个解决方案:

    /** The conseillers. */
@Column(value = "conseillers")
@Frozen
@FrozenKey
@FrozenValue
private Set<Map<String, String>> conseillers;

像这样我们可以map map <-> 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)));

}