create table tbl_master_values (
dbid int primary key,
user_dbid int, reg_dbid int,
module_dbid int,
fields_value map<text,list<text>>,
created_date timestamp,
modified_date timestamp);
它返回此错误:
InvalidRequest: code=2200 [Invalid query]
message="Non-frozen collections are not allowed inside collections: map<text, list<text>>"
在Cassandra中,如果您打算通过in-Cassandra查询添加或删除条目,则可以使用非冻结集合。但是当您打算在地图中使用UDT或嵌套集合时,必须将前者声明为已冻结。例如在你的情况下:
create table tbl_master_values (
dbid int primary key,
user_dbid int, reg_dbid int,
module_dbid int,
fields_value map<text,frozen<list<text>>>,
created_date timestamp,
modified_date timestamp);
如果您使用Map存储和检索信息,而不是更新行,则可以将其声明为:
frozen<map<text, list<text>>>
请记住,冻结的<>关键字不允许您更新该实体并将其存储为blob类型。请阅读此处以获取有关更新的说明:
https://docs.datastax.com/en/cql/3.3/cql/cql_using/useInsertMap.html