【发布时间】:2020-01-07 03:10:29
【问题描述】:
我正在尝试将不同类型的对象抽象插入到类似结构的 sql 表中。这是我正在尝试做的事情:
class TableAccess[A : Meta](table: String) {
def insert(key: String, a: A): ConnectionIO[Unit] = {
(fr"insert into " ++ Fragment.const(table) ++ fr" values ($key, $a);").update.run.map(_ => ())
}
}
但是我得到这个编译错误:
[error] diverging implicit expansion for type doobie.util.param.Param[A]
[error] starting with method fromMeta in object Param
[error] (fr"insert into " ++ Fragment.const(table) ++ fr" values ($key, $a);").update.run.map(_ => ())
我只能在文档中找到:
doobie 允许您插入任何类型的值(和选项 其中)带有一个 Meta 实例,其中包括...
但在这种情况下似乎还不够;我需要什么正确的 typeclass/imports/conversions?
【问题讨论】:
-
Doobie 从 Meta 派生 Param 的方式可能有问题。你可以在github.com/tpolecat/doobie/issues/780看到更多信息