scala 中的 Datastax java-驱动程序 QueryBuilder.update 问题

Datastax java-driver QueryBuilder.update issue in scala

这是我试图用来更新 cassandra 数据库中的行的 scala 代码:

 val query = QueryBuilder.update("twitter","tweets")
             .`with`(QueryBuilder.set("sinceid", update.sinceID)
             .and(QueryBuilder.set("tweets", update.tweets)))
             .where(QueryBuilder.eq("handle", update.handle));

基于建议 here

除了“.and”之外,一切似乎都正常。我得到的错误是

value and is not a member of com.datastax.driver.core.querybuilder.Assignment

这当然是对的,但此时在声明中应该使用

com.datastax.driver.core.querybuilder.Update.Conditions

其中包含and()

感谢您的帮助

我认为你的括号不匹配,你得到错误是因为 and 不是 Assignment 的成员,而 QueryBuilder.set("sinceid", update.sinceId) returns 是什么。您需要在 sinceId) 之后添加一个额外的括号,以便 .and 链接 .with ,其中 returns Assignments 具有 and 方法。

以下对我有用:

val query = QueryBuilder.update("twitter","tweets")
  .`with`(QueryBuilder.set("sinceid", update.sinceID))
  .and(QueryBuilder.set("tweets", update.tweets))
  .where(QueryBuilder.eq("handle", update.handle))