Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何从Phantom中的SetColumn[String]中选择字段_Scala_Cassandra_Datastax_Phantom Dsl_Phantom Types - Fatal编程技术网

Scala 如何从Phantom中的SetColumn[String]中选择字段

Scala 如何从Phantom中的SetColumn[String]中选择字段,scala,cassandra,datastax,phantom-dsl,phantom-types,Scala,Cassandra,Datastax,Phantom Dsl,Phantom Types,我有一个Cassandra表Department和列name\u list用PartitionKey扩展SetColumn[String],用PartitionKey扩展和id用PartitionKey扩展StringColumn 我想获取id,请求的名称在名称列表中 我尝试使用下面的代码,但没有得到任何结果 abstract class Departments extends Table[Departments, Department] with RootConnector { obje

我有一个Cassandra表
Department
和列
name\u list用PartitionKey扩展SetColumn[String],用PartitionKey扩展
id用PartitionKey扩展StringColumn

我想获取id,请求的名称在名称列表中

我尝试使用下面的代码,但没有得到任何结果

abstract class Departments extends Table[Departments, Department] with RootConnector {

  object id extends StringColumn with PartitionKey

  object dep_type extends StringColumn

  object name_list extends SetColumn[String] with Index

      def getByName(name: String) = {
        select(_.id, _.name_list)
          .where(_.name_list.contains(name))
          .allowFiltering()
          .one()
      }
}
有没有办法解决这个问题

您的模式必须是:

对象名称\u列表使用索引扩展SetColumn[String]


没有辅助索引,Cassandra不支持收集操作。

我认为我们不需要为它扩展索引。它也可以很好地处理这个问题:-

object name_list extends SetColumn[String]
现在,我使用与上述相同的方法获取id和姓名列表:-

def getByName(name: String) = {
    select(_.id, _.name_list)
      .where(_.name_list.contains(name))
      .allowFiltering()
      .one()
  }

@弗拉维安,你能检查一下吗?谢谢你帮助@flavian,但我仍然没有得到任何回应。我已经更新了问题。请看一看谢谢查询是否编译并运行,但你没有从Cassandra得到任何结果?是的@flavian,我运行了查询,但我没有从Cassandrat得到任何结果这是因为无论什么原因,你的数据都是错误的,这与幻影无关。尝试从cqlsh运行相同的东西,看看是否得到结果。如果是幻影,请告诉我。