Cassandra用嵌套对象创建表

时间:2020-08-31 22:48:29

标签: cassandra

我正在尝试将数据插入请求主体为

的表中
{
    "a": {
        "hostUrl": "url path"
    },
    "b": {
        "hostUrl": "abc",
        "hostPort": "port num"
    },
    "c": {
        "Username ": "username"
    }
} 

CREATE TABLE IF NOT EXISTS tabletest( a map<text,text>, b map<text,text>, c map<text,text>, created_at text PRIMARY KEY, updated_at text, enabled  int);

我能够从cqlsh插入数​​据,但不能从Mapper(com.datastax.driver.mapping.Mapper)插入数据

从impl保存时出错的代码段:

Mapper<DtoClassName> mapper = mappingManager.mapper(DtoClassName);
mapper.save(dtoClassName);

错误:

未找到所请求操作的编解码器:[map -位于

(这里a是请求正文中的第一个对象)。

1 个答案:

答案 0 :(得分:0)

DTO Class文件出现问题,因此通过将其从Class转换为Map 来解决该问题:

@Column(name = "a")
private Map<String, String> a;

@Column(name = "b")
private Map<String, String> b;