0

目前使用——

cqlsh> show version
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]

使用 phantom-dsl 1.12.2 , Scala 2.10 ..

我不知道如何设置查询的一致性级别。

作为 .. 的一部分,insert()有预定义的函数。我怎样才能将一致性级别传递给它们?select()CassandraTable

insert.value(....).consistencyLevel_=(ConsistencyLevel.QUORUM)

不起作用并因错误而失败(可能是因为这在查询末尾附加了“USING CONSISTENCY QUORUM”)。这是我得到的实际异常

com.datastax.driver.core.exceptions.SyntaxError: line 1:424 no viable alternative at input 'CONSISTENCY'
at com.datastax.driver.core.Responses$Error.asException(Responses.java:122) ~[cassandra-driver-core-2.2.0-rc3.jar:na]
at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:120) ~[cassandra-driver-core-2.2.0-rc3.jar:na]
at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:186) ~[cassandra-driver-core-2.2.0-rc3.jar:na]
at com.datastax.driver.core.RequestHandler.access$2300(RequestHandler.java:45) ~[cassandra-driver-core-2.2.0-rc3.jar:na]
at com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:754) ~[cassandra-driver-core-2.2.0-rc3.jar:na]
at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:576) ~[cassandra-driver-core-2.2.0-rc3.jar:na]

我从有关拉取请求的文档和讨论中看到,我可以setConsistencyLevel(ConsistencyLevel.QUORUM)对 SimpleStatement 执行操作,但我不希望重写所有不同的插入语句。

更新

只是为了结束这个问题的循环。我通过创建一个自定义InsertQuery然后使用它而不是final def insertin提供的那个来解决这个问题CassandraTable

  def qinsert()(implicit keySpace: KeySpace) = {
     val table = this.asInstanceOf[T]
     new InsertQuery[T, M, Unspecified](table, CQLQuery("INSERT into keyspace.tablename", consistencyLevel = ConsistencyLevel.QUORUM)
  }
4

2 回答 2

4

首先,setValue幻像中没有方法,并且您使用的 API 方法=最后缺少一个。

正确的结构是:

Table.insert .value(_.name, "test") .consistencyLevel_=(ConsistencyLevel.Quorum)

当您在 stackoverflow 上时,错误堆栈跟踪和不起作用的具体细节通常比“不起作用”更可取。

于 2015-10-15T06:24:25.313 回答
0

我终于弄清楚了如何使用 phantom-dsl 正确设置一致性级别。

使用语句,您可以执行以下操作:

statement.setConsistencyLevel(ConsistencyLevel.QUORUM)

另外,看看我一直在努力帮助像你这样的人使用 phantom-dsl 的示例的测试项目:

https://github.com/iamthiago/cassandra-phantom

于 2015-11-23T22:49:42.147 回答