2017-05-14 17 views
1

私はCassandra Phantomドライバを使用してScalaとCassandraでアプリケーションを構築しています。私のコードは次のようになります。Cassandra Phantom - パラメータヘルパーの暗黙の値を見つけることができませんでした:com.outworkers.phantom.macros.TableHelper [Users、User]

case class User(id: UUID, name:String) 

abstract class Users extends CassandraTable[Users, User] with RootConnector { 
    object id extends UUIDColumn(this) with PartitionKey 
    object name extends StringColumn(this) 

    def save(user: User): Future[ResultSet] = { 
    insert 
     .value(_.id, user.id) 
     .value(_.name, user.name) 
     .consistencyLevel_=(ConsistencyLevel.ALL) 
     .future() 
    } 

    def getById(id: UUID): Future[Option[User]] = { 
    select.where(_.id eqs id).one() 
    } 
} 

しかし、私はそれはエラー以下の私を与えるコードをコンパイルしようとすると:

could not find implicit value for parameter helper: com.outworkers.phantom.macros.TableHelper[Users, User] 

は、私はマニュアルを参照して、以下のいたときにこのエラーが発生している理由を理解することはできませんよ。

ファントムバージョン:2.7.6

スカラ:2.11.2

答えて

1
case class User(id: UUID, name:String) 

abstract class Users extends Table[Users, User] with RootConnector { 
    object id extends UUIDColumn(this) with PartitionKey 
    object name extends StringColumn(this) 

    def save(user: User): Future[ResultSet] = { 
    store(user) 
     .consistencyLevel_=(ConsistencyLevel.ALL) 
     .future() 
    } 

    def getById(id: UUID): Future[Option[User]] = { 
    select.where(_.id eqs id).one() 
    } 
} 

私は2.7.6でこれをコンパイルして、あなたもそれがあるとして手動insertを実装する必要はありませんあなたのために生成されます。

+0

あなたは正しいです!実際には、エラーを生成していたのは 'insert()'でした。これを 'store()'に置き換えて動作させました。応答ありがとう:) – himanshuIIITian

関連する問題