0

私はこのソースコードを読んでいます。

これは良さそうに見えますが、フィールドがアーティストの代わりに「アーティスト」で、アーティストがlist<text>cassandra であった場合はどうなるでしょうか?

ListColumn の使用について説明しているこの記事を見つけました

https://github.com/websudos/phantom/wiki/Collection-columns

しかし、ListColumn でインデックスをどのように定義するのかわかりません

  object genre extends ListColumn(this) with Index[List[String]]

上記の行はコンパイルされません。

4

1 に答える 1

1

私の知る限り、リストではなく、セット列のセカンダリ インデックスを含むクエリのみを実行できます。

行うことは次のとおりobject genre extends SetColumn[Table, Record, Int](this) with Index[Set[Int]]です。2 つのタイプは、次のように、すぐ上で拡張したときに指定したものと一致する必要がありますTableRecordCassandraTable

class MyTable extends CassandraTable[MyTable, MyRecord] {
  object genre extends SetColumn[MyTable, MyRecord, Int](this) with Index[Set[Int]]
}

これが理にかなっていることを願っています。あまりにも注意してくださいListColumn、すべてのコレクション列には引数TableTypeRecordType引数が必要です。

アップデート

ファントムの最近のバージョンでは、テーブルとレコードのタイプを指定する必要はありません。次の手順を実行してください。

class MyTable extends CassandraTable[MyTable, MyRecord] {
  object genre extends SetColumn[Int](this) with Index[Set[Int]]
}

インデックス付きコレクションの使用例についてはこのテストを参照し、そのようなテーブルの定義方法の例についてはこのを参照してください。

よろしく。

于 2016-02-29T11:17:09.443 に答える