2017-05-14 68 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

相關問題