在cassandra中更新自定义类型的集合类型

时间:2018-02-07 11:36:37

标签: cassandra cassandra-3.0

如何将新元素附加到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

1 个答案:

答案 0 :(得分:1)

当您说frozen时,整个值将被视为一个部分(blob),因此您无法更新此字段的部分内容。 Official documentation州:

  

使用frozen关键字时,无法更新用户定义类型值的部分内容。必须覆盖整个值。 Cassandra将冻结的,用户定义的类型的值视为blob。