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

据我所知,您只能在 Set 列上包含带有二级索引的查询,而不是 List。

这就是你要做的:object genre extends SetColumn[Table, Record, Int](this) with Index[Set[Int]]。这两种类型必须TableRecord您在CassandraTable上面扩展时提供的内容相匹配,如下所示:

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

希望这是有道理的。也要小心ListColumn,所有集合列都需要TableTypeandRecordType参数。

更新

在较新版本的 phantom 中,您不需要提供表和记录的类型。只需执行以下操作:

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

查看此测试以获取有关使用索引集合的示例,然后查看此表以获取有关如何定义此类表的示例。

问候。

于 2016-02-29T11:17:09.443 回答