【问题标题】:Datastax java-driver QueryBuilder.update issue in scalaScala中的Datastax java-driver QueryBuilder.update问题
【发布时间】:2015-08-05 17:42:45
【问题描述】:

这是我试图用来更新 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()

感谢您的帮助

【问题讨论】:

  • 不应该更像:.where(QueryBuilder.eq("handle", update.handle).and(QueryBuilder.set("tweets", update.tweets))))
  • 在这种情况下,编译器仍然无法识别'.and',尽管错误消息是不同的“value and is not a member of com.datastax.driver.core.querybuilder.Clause”跨度>

标签: scala query-builder datastax datastax-java-driver


【解决方案1】:

我认为您的括号不匹配,您收到错误是因为and 不是Assignment 的成员,这是QueryBuilder.set("sinceid", update.sinceId) 返回的内容。您需要在sinceId) 之后添加一个额外的括号,以便.and 链接.with,它返回具有and 方法的Assignments

以下对我有用:

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

【讨论】:

  • 我看了你的回复,把头放在桌子上 5 分钟。没错,谢谢。
猜你喜欢
  • 2019-09-28
  • 2020-10-20
  • 2023-04-03
  • 2017-06-16
  • 2016-02-26
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
相关资源
最近更新 更多