如何将新元素附加到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
答案 0 :(得分:1)
当您说frozen
时,整个值将被视为一个部分(blob),因此您无法更新此字段的部分内容。 Official documentation州:
使用frozen关键字时,无法更新用户定义类型值的部分内容。必须覆盖整个值。 Cassandra将冻结的,用户定义的类型的值视为blob。