2017-06-26 16 views
1

私は何かを完全に失っていますか?ファントムとの絶対的な最も基本的なプロジェクトをビルドしようとすると、このエラーの原因となっている。暗黙のTableHelperと2.12.1?

could not find implicit value for parameter helper: com.outworkers.phantom.macros.TableHelper[models.Accounts,models.Account] 

build.sbtはバージョン2.12.1を使用しています。

Account.scalaはこれです:

package models 
import com.outworkers.phantom.dsl._ 

case class Account(username: String) 

abstract class Accounts extends Table[Accounts, Account] with RootConnector { 
    object username extends StringColumn with PrimaryKey 
} 

私はクイックスタートマニュアルを参照して、以下のいたと思ったが、私はこれがすべてでコンパイルすることができません。一方、Play-Cassandraプロジェクトはうまくコンパイルされます。

+0

問題が見つかりました。 "with PrimaryKey"を使用すると問題が発生します。これを「with PartitionKey」に変更すると、エラーが取り除かれます。 (ここではより良いエラーメッセージが必要でしょうか?) – user2045359

+0

これらの警告を出すべき白いボックスのマクロlibは正しくありませんが、ほとんどのシナリオでは悲しいことですが、使用println .. – flavian

答えて

4

将来のGoogle社員のためにここに書くのは、スキーマでPartitionKeyが定義されていないためです。これは必須条件です。コンパイラは、マクロが呼び出されたときに警告を発行する必要があります。サイドノートでは

package models 
import com.outworkers.phantom.dsl._ 

case class Account(username: String) 

abstract class Accounts extends Table[Accounts, Account] { 
    object username extends StringColumn with PartitionKey 
} 

Tableを拡張することは、すでにRootConnectorにもたらしますので、あなたはそれがCassandraTable代わりのTableを使用してファントムの古いバージョンではそうであったとして明示的に、再びそれを拡張する必要はありません。