Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新的cassandra绑定语句getDate方法_Java_Spring_Date_Cassandra - Fatal编程技术网

Java 新的cassandra绑定语句getDate方法

Java 新的cassandra绑定语句getDate方法,java,spring,date,cassandra,Java,Spring,Date,Cassandra,在一个遗留项目中,我们在Spring应用程序中使用了cassandra驱动程序的版本2。 这个版本,特别是类BoundStatement公开了一个返回java的方法。我们都知道旧的JavaDateAPI非常糟糕,但如果谨慎使用,它就可以做到这一点 现在,由于某种必要性,我们决定将cassandra驱动程序升级到3.4版。首先要注意的是,在这个版本中,同一个方法现在返回一个日期类型,datastax团队实现该日期类型来回复java的日期。文档中记录了这个类的有趣之处: ISO 8601中没有时间成

在一个遗留项目中,我们在Spring应用程序中使用了cassandra驱动程序的版本2。 这个版本,特别是类
BoundStatement
公开了一个返回java的方法。我们都知道旧的JavaDateAPI非常糟糕,但如果谨慎使用,它就可以做到这一点

现在,由于某种必要性,我们决定将cassandra驱动程序升级到3.4版。首先要注意的是,在这个版本中,同一个方法现在返回一个日期类型,datastax团队实现该日期类型来回复java的日期。文档中记录了这个类的有趣之处:

ISO 8601中没有时间成分、没有时区的日期 日历。请注意,ISO 8601与 Java中使用的默认公历:它使用前公历 日历,这意味着它是过去的公历 (无公历变动);有一年是零。这个班 实现这些差异,以便年/月/日字段匹配 完全是CQL字符串文本中的那些


所以基本上,这个类会截断
时间
信息。此更改导致基于日期比较的单元测试出现一些故障,需要进行一些测试修改。对我来说,这似乎很奇怪,但我想税务团队做出这样的选择肯定有很好的理由。我很乐意听取对此有更多了解的人的意见。

getDate
从驱动程序2移动到驱动程序3.0中的
getTimestamp
,如下所述:

  • 已将getter和setter添加到新CQL类型的“数据容器”类中:

    • TINYINT类型的getByte/setByte
    • 用于SMALLINT类型的getShort/setShort
    • 时间类型的getTime/setTime
    • 日期类型的getDate/setDate
  • 时间戳CQL类型的方法已重命名为getTimestamp和setTimestamp

    这会影响行、BoundStatement、TupleValue和UDTValue


    其主要理由是在Cassandra 3.0中添加了
    date
    类型。为了避免将来的混淆,我们将现有的
    getDate
    移动到
    getTimestamp
    ,以便get方法与其cql类型名称匹配。

    感谢您的澄清。这只是有点让人困惑的是,同一个getter一直在工作,就像它说的不要担心,一切都在按它应该的方式工作,我没有找到指南中的这一点。