Scala 如何从Phantom中的SetColumn[String]中选择字段
我有一个Cassandra表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
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运行相同的东西,看看是否得到结果。如果是幻影,请告诉我。