1

ここのチュートリアルに従っています: http://blog.websudos.com/2015/04/04/a-series-on-phantom-part-1-getting-started-with-phantom/

カサンドラのバージョン: 2.1.8

Phatomバージョン 1.10.1

スカラのバージョン: 2.11.2

sbt バージョン: 0.13.8

記事に記載されているコードに加えて、次のものがあります。

object App {
  def main(args: Array[String]) {
    val user = new User(UUID.fromString("00000000-0000-0000-0000-000000000000"), "test@test.com", "Dan", DateTime.now)
   val resultSetFuture = Users.store(user)
   Await.result(resultSetFuture, Duration.Inf)
  }
}

runプログラムを実行sbtすると、次のエラーが表示されます (これがスタック トレースの先頭です)。

[error] (run-main-0) com.datastax.driver.core.exceptions.SyntaxError: line 1:157 no viable alternative at input 'CONSISTENCY' (..., 'Dan', 1437914728864) USING [CONSISTENCY]...)
com.datastax.driver.core.exceptions.SyntaxError: line 1:157 no viable alternative at input 'CONSISTENCY' (..., 'Dan', 1437914728864) USING [CONSISTENCY]...)

を確認しcsqlshましたが、ネームスペースは作成されていますが、テーブルは作成されていません。

どんな助けでも大歓迎です。

build.sbt便利な場合は次のとおりです。

name := "Something"

organization := "danmisun.github.com"

version := "0.1.0-SNAPSHOT"

scalaVersion := "2.11.2"

crossScalaVersions := Seq("2.10.4", "2.11.2")

val PhantomVersion = "1.10.1"

libraryDependencies ++= Seq(
  "org.scalatest" %% "scalatest" % "2.2.1" % "test",
  "org.scalacheck" %% "scalacheck" % "1.11.5" % "test",
  "com.websudos" % "phantom_2.11" % PhantomVersion,
  "com.websudos" % "phantom-dsl_2.11" % PhantomVersion,
  "com.websudos" % "phantom-testkit_2.11" % PhantomVersion % "test,   provided"
)

resolvers ++= Seq(
  "Typesafe repository snapshots" at "http://repo.typesafe.com/typesafe/snapshots/",
  "Typesafe repository releases" at "http://repo.typesafe.com/typesafe/releases/",
  "Sonatype repo"                    at "https://oss.sonatype.org/content/groups/scala-tools/",
  "Sonatype releases"                at "https://oss.sonatype.org/content/repositories/releases",
  "Sonatype snapshots"               at "https://oss.sonatype.org/content/repositories/snapshots",
  "Sonatype staging"                 at "http://oss.sonatype.org/content/repositories/staging",
  "Java.net Maven2 Repository"       at "http://download.java.net/maven/2/",
  "Twitter Repository"               at "http://maven.twttr.com",
  Resolver.bintrayRepo("websudos", "oss-releases")
)

initialCommands := "import something._"
4

2 に答える 2

1

Users.store は何を返しますか? Future[ResultSet]を返している場合は、future が完了するまで待ちます。await を入れて確認してみてください。

import scala.concurrent.{ Await, Future }
import scala.concurrent.duration.Duration

val resultSetFuture = Users.store(user)
Await.result(resultSetFuture, Duration.Inf) 
于 2015-07-26T11:50:54.327 に答える
1

最初にテーブルを作成する必要があります: (最初の実行後にコメントするか、「テーブルが既に存在する例外:P」を受け取ります)

Await.result(Users.create.future(), 5000 millis)

次に.consistencyLevel_=(ConsistencyLevel.ALL)、ファントムライブラリがcassandraの変更に非常に遅れているように見えるため、削除します。これは、ConsistencyLevelがリクエストごとではなくセッションごとに定義されるようになったことを示しています。

これでうまくいくはずですが、このライブラリはあまり有望ではないようです。

于 2015-07-27T20:25:06.487 に答える