2016-06-15 5 views
1

Wie können wir TTL einer ROW von Cassandra zurückgegeben bekommen.TTL vom ROW-Objekt des Datenastax-Java-Treibers

Momentan erhalte ich TTL als Teil der Select-cql-Abfrage, z. WÄHLEN SIE NEIN, TTL; Und dann mit Row.getInt ("TTL");

Gibt es einen anderen besseren Weg, dies zu tun.

Antwort

1

TTLs werden pro Zelle und nicht in Zeilen festgelegt. Wenn Sie erhalten möchten, wählen Sie val, TTL (val) aus test; zeigen Ihnen die verbleibende TTL in Sekunden

Zum Beispiel

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

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

ich die SELECT-Abfrage von 8 Sekunden nach Einsetzen der Reihe ausgeführt.

0
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)"); 

Gibt Ihnen die TTL auf den Wert in Sekunden.