Scala / Phantom ListColumn [Map [String,String]]

时间:2016-12-23 00:29:23

标签: scala cassandra phantom-dsl

我有一个数据库列,其中包含列表< map< text,text>>输入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代替,但无法转换地图< text,text>到toJson / fromJson的字符串覆盖工作。

Phantom是否可以进行此转换?如果有,是否有任何文档或示例显示此内容?

非常感谢,

西蒙

1 个答案:

答案 0 :(得分:0)

这在Cassandra本身是不可能的,它不是Phantom客户端限制。解决这个问题的常用方法是使用用户定义的类型,这些类型在phantom-pro。

中原生支持
@Udt case class Address(
  postcode: String,
  address: String
)

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

这只是一个嵌套的例子。