自从我们升级到Scala 2.13之后,访问Cassandra中Date列的查询失败,但出现了一个异常:无法从‘1601856000000’中生成unsigned int(用于日期(
这个值显然太大了,无法放入无符号的int。根据Cassandra文档,日期存储为无符号int,表示自epoch 以来的天数
但是,当我查看虚幻的dsl DateSerializer代码时,我发现它故意从所有支持的Date类型中取millisInceEpoch值,这是异常中的值
列:object date extends DateColumn with ClusteringOrder with Descending
查询/方法:
select
.where(_.userId eqs userId)
.and(_.date gte startDate)
.fetch()(implicitly, executionContext)
幻影dsl版本2.59.0
已经尝试使用LocalDate(同样的问题(并将该列表示为StringColumn,如果我将日期格式化为YYYY-MM-dd,则该列适用于查询,但结果集中的值无法解析为日期
我在这里错过了什么?
过了一段时间,一位同事想出了一个解决方案:如果您将列定义为com.datatax.river.core.LocalDate,它确实可以