私はプレーンフレームワークでcassandraを接続するためにファントムを使用しています。チュートリアルの後に最初のクラスを作成しました。すべてうまく動作します。私は別のテーブルを作成して構築できる方法phantom cassandra複数のテーブルが例外をスローする
overriding method session in trait RootConnector of type => com.datastax.driver.core.Session;
:私は正確に同じ方法で、次の別のテーブルを作成しようとするとき、コンパイル
case class User(id: String, page: Map[String,String])
sealed class Users extends CassandraTable[Users, User] {
object id extends StringColumn(this) with PartitionKey[String]
object page extends MapColumn[String,String](this)
def fromRow(row: Row): User = {
User(
id(row),
page(row)
)
}
}
abstract class ConcreteUsers extends Users with RootConnector {
def getById(page: String): Future[Option[User]] = {
select.where(_.id eqs id).one()
}
def create(id:String, kv:(String,String)): Future[ResultSet] = {
insert.value(_.id, id).value(_.page, Map(kv)).consistencyLevel_=(ConsistencyLevel.QUORUM).future()
}
}
class UserDB(val keyspace: KeySpaceDef) extends Database(keyspace) {
object users extends ConcreteUsers with keyspace.Connector
}
object UserDB extends ResourceAuthDB(conn) {
def createTable() {
Await.ready(users.create.ifNotExists().future(), 3.seconds)
}
}
はしかし、プレイが例外をスロー?誰かが例外の原因を説明することもできますか?ありがとう。
EDIT
は、私は1つのクラスで一緒に接続部を移動:
class UserDB(val keyspace: KeySpaceDef) extends Database(keyspace) {
object users extends ConcreteUsers with keyspace.Connector
object auth extends ConcreteAuthInfo with keyspace.Connector
}
を、この時間は、エラーメッセージは次のとおりです。
overriding object session in class AuthInfo; lazy value session in trait Connector of
type com.datastax.driver.core.Session cannot override final member
メッセージが問題を識別するのに役立ちます願っています。
idとpageはtypoです。それは私のコードでは最新です。問題は別のテーブルを定義するたびに発生します。 '抽象クラスConcretePagesはRootConnectorでページを拡張します{'、コンパイル時に失敗します。 – yang