我一直在尝试在 Cassandra 中将时间戳值存储到毫秒,但我只能通过 DataStax 驱动程序获取到 LocalDate,毫秒部分被它省略了。
这是我的课
package com.example.connectCass.Model;
import lombok.Data;
import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.core.mapping.Table;
import com.datastax.driver.core.LocalDate;
import java.util.Date;
@Data
@Table
public class DemoModel {
@PrimaryKeyColumn(name = "acctID", type = PrimaryKeyType.PARTITIONED)
private String acctID;
@PrimaryKeyColumn(name = "transactionDate", type = PrimaryKeyType.PARTITIONED)
private LocalDate transactionDate;
@PrimaryKeyColumn(name = "currentTime", type = PrimaryKeyType.CLUSTERED)
private LocalDate currentTime;
@Column
private String card;
@Column
private String amountCreditedFrom;
@Column
private double transactionAmount;
@Column
private double balance;
public void setTransactionDate(){
this.transactionDate = LocalDate.fromMillisSinceEpoch(new Date().getTime());
}
public void setCurrentTime(){
this.currentTime = LocalDate.fromMillisSinceEpoch(new Date().getTime());
}
}
在setCurrentTime
方法中,我想要时间到毫秒,但无法做到,它只能到今天的日期。直接尝试了java.util.Date
,但它不起作用。
为什么 Cassandra 中不存在毫秒?
最佳答案
我在表模式中错误地定义了日期而不是时间戳,这是我的错。
关于java - Cassandra 使用 LocalDate 截断毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61189833/