TTL从datastax java驱动程序的ROW对象中获取

问题描述:

我们如何获得从Cassandra返回的ROW的TTL。TTL从datastax java驱动程序的ROW对象中获取

当前我正在将TTL作为Select cql查询的一部分获取,例如, SELECT NO,TTL; 然后使用Row.getInt(“TTL”);

有没有其他更好的方法来做到这一点。

TTLs设置为每个单元格而不是行。如果你想得到 从测试中选择val,TTL(val); 告诉你在几秒钟内

剩余TTL例如

> insert into test (id, val) VALUES (uuid(), 'some value') using ttl 100; 
> select val, TTL(val) from test; 

val   | ttl(val) 
---------------+-------------- 
    hello world |  92 

我执行select查询插入行后8秒。

PreparedStatement prep = session.prepare("SELECT val, TTL(val) from TABLE"); 
BoundStatement boundStmt = new BoundStatement(prep); 
Row r = session.execute(boundStmt).one(); 
r.getInt("TTL(val)"); 

会以秒为单位给你TTL值。