我想定义一个新的Column /转换器来将case类编组为基本类型,然后使用幻像dsl重新编写。
in slick 3.1.1我可以轻松地做到这一点:
implicit val idTypeMapper = MappedColumnType.base[Id, Long](
{ (v) ⇒ v.value },
{ (s) ⇒ Id(s) }
)
这允许我在光滑的查询中的任何地方使用Id
,它将被隐式地来回转换。
我试图通过扩展AbstractColumn
(和其他)来推导我自己的列和转换,但没有运气。
我如何在幻像中执行此操作。
答案 0 :(得分:0)
对于迟到的回复道歉,您只需使用Primitive.derive
即可。有关official docs的详细信息。
import com.outworkers.phantom.dsl._
case class Test(value: String)
object Test {
implicit val testPrimitive: Primitive[Test] = {
Primitive.derive[Test, String](_.value)(Test.apply)
}
}