使用Phantom DSL为Cassandra创建模型

时间:2016-02-29 05:23:32

标签: scala phantom-dsl

我正在阅读this piece of source code

这看起来不错,但是如果不是艺术家,那么这个领域是“艺术家”,艺术家在卡桑德拉是list<text>吗?

我发现这篇文章讨论了使用ListColumn

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

但我不确定如何在ListColumn上定义索引

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

上面的行无法编译。

1 个答案:

答案 0 :(得分: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,所有集合列都需要TableTypeRecordType个参数。

<强>更新

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

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

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

问候。