将 Joda 时间映射到 Cassandra 的日期类型

Posted

技术标签:

【中文标题】将 Joda 时间映射到 Cassandra 的日期类型【英文标题】:Mapping Joda time to Cassandra's Date type 【发布时间】:2015-04-21 01:42:24 【问题描述】:

在使用 Spring-data 的 cassandra 模块进行映射时,将 Joda 时间映射到 Cassandra 的 Date 类型的推荐方法是什么? JPA/Hibernate 中的 @Type 注解是否有等价物?

【问题讨论】:

【参考方案1】:

此待处理票证正在解决此问题: https://datastax-oss.atlassian.net/browse/JAVA-721

一旦解决,java 驱动程序映射将允许自定义类型映射到 cassandra 数据模型。

【讨论】:

【参考方案2】:

我还没有找到一种干净的方法来使用 spring-data-cassandra 注册转换器。

您仍然可以为您的字段使用java.util.Date(框架将通过反射访问它们),并使用封装来提供您想要的类型:

@Table("measure")
public class Measure 

    @PrimaryKey("id") private String id;
    @Column("timestamp") private java.util.Date timestamp;
    @Column("data") private Double data;

    /** 
     * Convert java.util.Date -> org.joda.time.DateTime 
     */
    public DateTime getTimestamp() 
        // Simple example, beware of the timezone
        return new DateTime(ts);
    

    // Constructor and other getters omitted

【讨论】:

以上是关于将 Joda 时间映射到 Cassandra 的日期类型的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra中的一对多映射

如何使用 RestKit 将日期组件字典映射到 NSDate

如何将 Joda Localdate 转换为 Joda DateTime?

Joda DateTime 到 BigDecimal 分数计算

JODA 夏令时转换

休眠 5 的 joda 时间兼容性问题