我如何将一个新元素附加到Cassandra中的自定义类型中的集合。
custom_type是:
CREATE TYPE custom_type (
normal_type TEXT,
set_type Set<TEXT>
);
和要更新的表是:
CREATE TABLE test_table (
id TEXT,
my_type FROZEN<custom_type>,
clustering_key TEXT,
PRIMARY KEY ((id),clustering_key)
);
在以下查询下尝试但不起作用。
@Query("update test_table set my_type.set_type = my_type.set_type + {'newelement'} where id=?1 and clustering_key=?2")
关于如何做的任何想法?使用[cqlsh 5.0.1 | Cassandra 3.11.1 | CQL spec 3.4.4
当您说 frozen
时,整个值将被视为一块(blob(,因此您无法更新此字段的部分。官方文件指出:
使用冷冻关键字时,您无法更新用户定义的类型值的部分。整个值必须被覆盖。卡桑德拉(Cassandra(将冷冻,用户定义类型的价值如斑点。