使用datastax java驱动程序更新ttl未按预期工作的实体

lstz6jyr  于 2021-06-10  发布在  Cassandra
关注(0)|答案(0)|浏览(384)

我试图将ttl添加到一个保存在批处理中的现有记录(在实体级别,而不是列)中,该表中有一个枚举,该枚举会得到更新,每当客户选择该选项时,ttl就会应用,但我看到的是,在ttl周期到期后,行不会被删除,只有枚举返回到应用ttl之前的状态。代码如下所示,其中customer是持久化的实体,ttl是一个临时整数字段,仅在更新时设置为>0,而customermapper是Map器

if(customer.getTtl() > 0) {
                batchStatement.add(customerMapper.saveQuery(customer, ttl(customer.getTtl())));
            } else {
                batchStatement.add(customerMapper.saveQuery(customer));
            }

表0架构:

CREATE TABLE customer (
            id uuid,
            tenant_id bigint,
            workspace_id bigint,
            creation_date timestamp,
            in_control_group boolean,
            monitored boolean,
            num_sessions int,
            id_status tinyint,
            recognized boolean,
            PRIMARY KEY (id, tenant_id, workspace_id)
            );

我们使用的是cassandra3+,表的读写一致性设置为local\u quorum,而压缩是分层的。有什么想法可能是错的吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题