2016-06-15 1 views
1

Comment peut-on obtenir TTL d'une ROW retournée par Cassandra.TTL obtenir de l'objet ROW du pilote java DataStax

Actuellement, je suis en train de récupérer TTL dans le cadre de la requête Select cql, par ex. SELECT NO, TTL; Puis en utilisant Row.getInt ("TTL");

Existe-t-il une autre meilleure façon de procéder?

Répondre

1

Les TTL sont définis par cellules et non par lignes. Si vous voulez obtenir sélectionnez val, TTL (val) du test; pour vous montrer le TTL restant en secondes

Par exemple

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

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

J'ai exécuté la requête de sélection 8 secondes après l'insertion de la ligne.

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

Vous obtiendrez le TTL sur la valeur en secondes.