【发布时间】:2018-03-12 18:48:14
【问题描述】:
我一直在努力纠正这种类型不匹配的问题。我正在从 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 object 包装r.getDate("createdat")。但没有运气。任何建议都是可观的。提前致谢。
【问题讨论】:
标签: scala date cassandra akka datastax