使用Spring Time cassandra存储库的生存时间(TTL)

时间:2019-07-26 14:21:41

标签: spring spring-data pivotal-cloud-foundry spring-data-cassandra

无法将TTL与基于Spring数据CassandraRepository的实现一起使用。

Spring data cassandra版本:最新

我正在尝试使用cassandra的TTL属性通过基于Spring数据存储库的实现进行保存操作。但是,请参阅参考文档(https://docs.spring.io/spring-data/cassandra/docs/current/reference/html/),我看不到任何直接使用它的方法。

即使文档提到我们可以使用它,但没有提供基于存储库的实现示例。请注意,我看到了一些使用cqlTemplate和cassadraOperations的示例。但是没有一个用于存储库。

No code written yet as I am trying to figure out how to use it

期望是对存储库保存/更新方法的某种@TTL(以秒为单位的值)注释,以便于实施。

1 个答案:

答案 0 :(得分:1)

请参阅此帖子TTL support in spring boot application using spring-data-cassandra

中的萨卡答案

请在此处查看我的示例代码https://github.com/nontster/spring-data-cassandra-demo

我从本教程https://www.baeldung.com/spring-data-cassandra-tutorial借用了示例代码

您需要先创建演示密钥空间,然后才能运行此代码,

CREATE KEYSPACE demo WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 1};

在BookRepositoryIntegrationTest.java中运行saveBookTest()方法,您可以通过(我将TTL设置为600秒)在列中看到倒计时TTL

cqlsh:demo> SELECT title,TTL(year) FROM Book WHERE title='Head First Java' AND publisher='O''Reilly Media';

 title           | ttl(year)
-----------------+-----------
 Head First Java |       597

(1行)