cassandra:datastax LocalDate 类型与 java.util.Date 不匹配 # scala Akka
cassandra : datastax LocalDate Type mismatch to java.util.Date # scala Akka
我一直在努力纠正这种类型不匹配 issue.i 我正在从 cassandra 获取结果集记录。使用的查询是:
CREATE TABLE tweets (
key text PRIMARY KEY,
user_user varchar,
text text,
createdat timestamp
) WITH comment='Tweets'
AND COMPACT STORAGE
AND read_repair_chance = 1.0;
cqlsh:akkacassandra> select * from tweets;
key | createdat | text | user_user
-----+-----------+------+-----------
(0 rows)
cqlsh:akkacassandra>
这是定义类型的代码块:
Tweet.scala
中的部分内容
case class Tweet(id: TweetId, user: User, text: Text, createdAt: Date)
tweetread.scala
中的一部分
def buildTweet(r: Row): Tweet = {
val id = r.getString("key")
val user = r.getString("user_user")
val text = r.getString("text")
val createdAt = r.getDate("createdat")
Tweet(id, user, text, createdAt)
}
但是我在 运行 使用 sbt 时遇到以下错误。
[info] Loading project definition from C:\Akka Actors\activator-akka-cassandra-master\project
[info] Set current project to activator-akka-cassandra (in build file:/C:/Akka%20Actors/activator-akka-cassandra-master/)
[info] Compiling 8 Scala sources to C:\Akka Actors\activator-akka-cassandra-master\target\scala-2.10\classes...
[error] C:\Akka Actors\activator-akka-cassandra-master\src\main\scala\core\tweetread.scala:29: type mismatch;
[error] found : com.datastax.driver.core.LocalDate
[error] required: java.util.Date
[error] Tweet(id, user, text, createdAt)
[error] ^
我尝试了一些解决方案,比如用 java.util.Date objec
t.But 包装 r.getDate("createdat")
没有 luck.Any 建议提前 appreciable.Thanks。
使用getTimestamp
,其中returns一个java.util.Date
:
def buildTweet(r: Row): Tweet = {
val id = r.getString("key")
val user = r.getString("user_user")
val text = r.getString("text")
val createdAt = r.getTimestamp("createdat") // <---
Tweet(id, user, text, createdAt)
}
我一直在努力纠正这种类型不匹配 issue.i 我正在从 cassandra 获取结果集记录。使用的查询是:
CREATE TABLE tweets (
key text PRIMARY KEY,
user_user varchar,
text text,
createdat timestamp
) WITH comment='Tweets'
AND COMPACT STORAGE
AND read_repair_chance = 1.0;
cqlsh:akkacassandra> select * from tweets;
key | createdat | text | user_user
-----+-----------+------+-----------
(0 rows)
cqlsh:akkacassandra>
这是定义类型的代码块:
Tweet.scala
中的部分内容case class Tweet(id: TweetId, user: User, text: Text, createdAt: Date)
tweetread.scala
中的一部分def buildTweet(r: Row): Tweet = {
val id = r.getString("key")
val user = r.getString("user_user")
val text = r.getString("text")
val createdAt = r.getDate("createdat")
Tweet(id, user, text, createdAt)
}
但是我在 运行 使用 sbt 时遇到以下错误。
[info] Loading project definition from C:\Akka Actors\activator-akka-cassandra-master\project
[info] Set current project to activator-akka-cassandra (in build file:/C:/Akka%20Actors/activator-akka-cassandra-master/)
[info] Compiling 8 Scala sources to C:\Akka Actors\activator-akka-cassandra-master\target\scala-2.10\classes...
[error] C:\Akka Actors\activator-akka-cassandra-master\src\main\scala\core\tweetread.scala:29: type mismatch;
[error] found : com.datastax.driver.core.LocalDate
[error] required: java.util.Date
[error] Tweet(id, user, text, createdAt)
[error] ^
我尝试了一些解决方案,比如用 java.util.Date objec
t.But 包装 r.getDate("createdat")
没有 luck.Any 建议提前 appreciable.Thanks。
使用getTimestamp
,其中returns一个java.util.Date
:
def buildTweet(r: Row): Tweet = {
val id = r.getString("key")
val user = r.getString("user_user")
val text = r.getString("text")
val createdAt = r.getTimestamp("createdat") // <---
Tweet(id, user, text, createdAt)
}