Существует ограничение для обновлений Cassandra в том, что они будут работать только с первичным ключом.Первичным ключом может быть один столбец (с именем ключа раздела) или несколько столбцов (ключ раздела и один или несколько ключей кластеризации).
В случае, если вы предоставляете, необходимо убедиться, что оба id
и provider_message_id
являются частью первичного ключа, описание таблицы с cql должно быть примерно таким:
cqlsh:> DESCRIBE keyspace1.messages;
...
CREATE TABLE keyspace1.messages (
id text,
phone text,
message text,
provider_message_id text,
status text,
datetime date,
PRIMARY KEY (id, provider_message_id)
) WITH CLUSTERING ORDER BY (provider_message_id ASC)
...
Также обратите внимание, что вам нужно будет использовать id
и provider_message_id
во всех запросах на обновление (обновление по id
или provider_message_id
отсутствует).Ваш код будет выглядеть так:
update().where(_.id eqs message.id).and(_.provider_message_id eqs callback_id)...