Scala/Phantom ListColumn[Карта [Строка, Строка]]

У меня есть столбец базы данных с типом списка> в Cassandra, который я пытаюсь прочитать ListColumn[Map[String,String]] в моем CassandraTable учебный класс.

Я получаю 2 ошибки компиляции:

Error:(18, 25) could not find implicit value for evidence parameter of type com.websudos.phantom.builder.primitives.Primitive[Map[String,String]]
  object claims extends ListColumn[Map[String,String]](this)

Error:(18, 25) not enough arguments for constructor ListColumn: (implicit evidence$1: com.websudos.phantom.builder.primitives.Primitive[Map[String,String]])com.websudos.phantom.column.ListColumn[ConcreteUsers,User,Map[String,String]].
Unspecified value parameter evidence$1.
  object claims extends ListColumn[Map[String,String]](this)

Я пытался использовать JsonListColumn вместо этого, но это не может преобразовать карту в строку для переопределения toJson/fromJson.

Возможно ли это преобразование с помощью Phantom, и если да, то есть ли документация или пример, показывающий это?

Большое спасибо,

Саймон

1 ответ

Это невозможно в самой Cassandra, это не ограничение клиента Phantom. Обычный способ решения этой проблемы заключается в использовании пользовательских типов, которые изначально поддерживаются в Phantom-Pro.

@Udt case class Address(
  postcode: String,
  address: String
)

@Udt case class Record(
  name: String
  items: List[Map[String, Address]]
)

Это всего лишь пример вложенности.

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