我正在为Cassandra的datastax java驱动程序中的mappingmanager创建一个scala包装器。
CREATE TABLE todo (
id UUID,
title TEXT,
completed boolean,
PRIMARY KEY((id), completed, title)
) WITH CLUSTERING ORDER BY (completed ASC, title ASC);
private def executeAsync(query: String, params: Any*): Future[ResultSet] = {
params match {
case Seq() =>
session.executeAsync(query) // had a problem with empty params varargs
case _ =>
prepareAsync(query).map(preparedStatement =>
preparedStatement.bind(
params
.map(x => {
println(x) // correctly prints the param
x.asInstanceOf[Object]
})
)
).flatMap(x => {
println("here") // never gets printed
session.executeAsync(x)
})
}
}
private def prepareAsync(query: String): Future[PreparedStatement] = {
session.prepareAsync(query)
}
val future: Future[List[TodoCassandra]] = customMappingManager.executeQueryAsync("SELECT * FROM todo;")
future.onComplete {
case Success(x) =>
println(x)
}
val future: Future[List[TodoCassandra]] = customMappingManager.executeQueryAsync("INSERT INTO todo (id, title, completed) VALUES (uuid(), ?, ?)", "prepared statement test", false)
val future: Future[List[TodoCassandra]] = customMappingManager.executeQueryAsync("INSERT INTO todo (id, completed, title) VALUES (uuid(), ?, ?)", false, "prepared statement test")
val future: Future[List[TodoCassandra]] = customMappingManager.executeQueryAsync("SELECT * FROM todo WHERE id = ?", "a8a6da8b-3d0e-40b3-99e5-fe2f664f50d0")
为什么它总是从Scala.Collection.Mutable.ArrayBuffer“转换”?解决这个问题的方法是什么?
在使用从Scala教程查询Cassandra时,我遇到了与您类似的问题。
您的executeAsync
方法与本文中的方法类似,并且具有相同的缺陷。也就是说,在PreparedStatement.bind
期间,在将每个any
项强制转换为Object
之后,您传递一个seq[Object]
。而这似乎失败了。
简单的解决方法是,按照Java方法的实际要求,将该序列作为var-args
传递。
代码:
def execute(statement: Future[PreparedStatement], params: Any*)
(implicit executionContext: ExecutionContext, session: Session): Future[ResultSet] = {
val p = params.map(_.asInstanceOf[Object])
statement
.map(_.bind(p: _*))
.flatMap(session.executeAsync(_))
}
scala-mongo-driver有一个处理case类的很好的文档。http://mongodb.github.io/mongo-scala-driver/2.3/getting-start/quick-tour-case-classs/。在当前情况下,我的case类字段是option[T]值。因此值可以是或。默认编解码器现在将“none”值序列化为null。但如果键的值为none,我想排除它。
我想将FieldMmap类的集合保存为json字符串- ... etc-完整代码:https://github.com/alexeyOnGitHub/scala-typesafe/blob/master/src/main/scala/com/example/model/Field.scala Circe代码: 错误:(14,65)找不到io类型的延迟隐式值。circe。通用的解码。DerivedD
我有一个简单的类叫做Signal。课程内容如下: 我试图在MongoDB(v3.4)插入信号。我使用以下方法插入: 我得到了以下例外: org.bson.codecs.configuration.代码配置异常:找不到in.co.mysite.webapi.models.Signal类的编解码器。 我在这里检查了一个类似的问题,但是插入代码不同。我从回答中得到提示,修改了我的方法,但看起来不干净。修
问题内容: 输出 >无法连接到数据库服务器java.lang.ClassNotFoundException 问题答案: 看来您应该将MySQL驱动程序jar放入 类路径中 。
问题内容: 我刚刚用Apache,MySQL和PHP安装了Debian Lenny,并且收到了PDOException 。 这是它所指的特定代码行: ,,,和是我所定义的常量。它在生产服务器(以及我以前的Ubuntu Server设置)上运行良好。 这与我的PHP安装有关吗? 搜索互联网没有帮助,我得到的只是专家交流和示例,但没有解决方案。 问题答案: 您需要有一个名为pdo_mysql的模块。在