无法将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(以秒为单位的值)注释,以便于实施。
答案 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行)