2017-05-14 3 views
1

Ich benutze Cassandra Phantom Treiber, um eine Anwendung mit Scala und Cassandra zu erstellen. Mein Code sieht wie folgt aus:Cassandra Phantom - konnte keinen impliziten Wert für Parameter helper finden: com.outworkers.phantom.macros.TableHelper [Benutzer, Benutzer]

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() 
    } 
} 

Aber wenn ich versuche, den Code zu kompilieren es gibt mir folgende Fehlermeldung:

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

ich nicht in der Lage bin zu verstehen, warum dieser Fehler auftritt, wenn ich die Dokumentation am folgenden .

Phantom Version: 2.7.6

Scala: 2.11.2

Antwort

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() 
    } 
} 

Ich habe dies nur mit 2.7.6 kompiliert, Sie brauchen auch nicht manuell eine insert zu implementieren, wie es ist für dich generiert.

+0

Sie haben Recht! Eigentlich war es 'insert()', was Fehler verursachte. Ersetzt durch 'store()' und es hat funktioniert. Danke für die Antwort :) – himanshuIIITian

Verwandte Themen