Scala 使用幻影dsl自定义cassandra列编组

Scala 使用幻影dsl自定义cassandra列编组,scala,cassandra,phantom-dsl,Scala,Cassandra,Phantom Dsl,我想定义一个新的列/转换器,将一个case类封送到一个基元类型,然后再次使用幻影dsl封送回来 在slick 3.1.1中,我可以轻松做到这一点: implicit val idTypeMapper = MappedColumnType.base[Id, Long]( { (v) ⇒ v.value }, { (s) ⇒ Id(s) } ) 这允许我在一个灵活的查询中的任何地方使用Id,它将被隐式地来回转换 我试图通过扩展AbstractColumn(和其他)在phan

我想定义一个新的列/转换器,将一个case类封送到一个基元类型,然后再次使用幻影dsl封送回来

在slick 3.1.1中,我可以轻松做到这一点:

  implicit val idTypeMapper = MappedColumnType.base[Id, Long](
    { (v) ⇒ v.value },
    { (s) ⇒ Id(s) }
  )
这允许我在一个灵活的查询中的任何地方使用
Id
,它将被隐式地来回转换

我试图通过扩展
AbstractColumn
(和其他)在phantom中导出我自己的列和转换,但没有成功


如何在幻影dsl中做到这一点。

对于延迟回复表示歉意,您只需使用
Primitive.derivate
。更多的细节

import com.outworkers.phantom.dsl._

case class Test(value: String)

object Test {
  implicit val testPrimitive: Primitive[Test] = {
    Primitive.derive[Test, String](_.value)(Test.apply)
  }
}