【问题标题】:Using Time To Live(TTL) for spring data cassandra repository将生存时间(TTL)用于 Spring 数据 cassandra 存储库
【发布时间】:2019-12-04 21:56:48
【问题描述】:

不能将 TTL 与基于 Spring Data 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(value in seconds) 注释,以便于实施。

【问题讨论】:

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


    【解决方案1】:

    请参阅此帖子中 A Sarkar 的回答 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() 方法,您可以在 via 列中看到倒计时 TTL(我将 TTL 设置为 600 秒)

    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 行)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 2019-08-11
      • 2015-05-10
      • 2020-02-23
      • 1970-01-01
      • 2018-03-04
      • 2016-07-28
      • 1970-01-01
      相关资源
      最近更新 更多