Как выбрать поля из SetColumn[String] в Phantom

У меня есть стол Кассандры Department с колоннами name_list extends SetColumn[String] with PartitionKey а также id extends StringColumn with PartitionKey,

Я хочу получить идентификатор, где запрошенное имя присутствует в name_list.

Я попытался использовать этот код ниже, но не получил никаких результатов

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()
      }
}

Есть ли способ решить это!!

2 ответа

Решение

Я думаю, что нам не нужно расширять индекс для этого. Это работает нормально с этим тоже:-

object name_list extends SetColumn[String]

Теперь я получаю id и name_list, используя тот же метод, что и выше:-

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

Ваша схема должна быть:

object name_list extends SetColumn[String] with Index

Без вторичной индексации Cassandra не поддерживает операции сбора.

Другие вопросы по тегам