Slick Query jsonb - 无法转换为slick.ast.OptionType

时间:2016-04-18 20:20:20

标签: scala slick jsonb slick-pg

我正在尝试使用slick-pg构建一个返回一些选定列的查询作为我的光滑驱动程序,但是我在尝试映射json列MyValueObject时遇到问题。我在运行时得到的错误是......

A client error occurred: slick.driver.JdbcTypesComponent$MappedJdbcType$$anon$1 cannot be cast to slick.ast.OptionType"

我的案例案例,表格映射器和查询看起来与此类似......

case class MyAggregateObject(foo: String, valueObj: Option[MyJsonObject)
case class MyJsonObject(bar: Int, baz: Option[String] = None)
implicit val jsonObjectMapper = MappedColumnType.base[Option[MyJsonObject], JsValue](s => Json.toJson(s),str => Json.fromJson[MyJsonObject](str).asOpt)
val q = for {
  list <- myAggregateObjects
} yield (
  list.foo,
  list.MyJsonObject.flatMap(_.baz.bind)) // throws the error!

我现在能够提出的唯一解决方案是映射结果,但返回的行可能非常大,我想避免将一系列大对象加载到内存中。

0 个答案:

没有答案