我正在尝试将不同类型的对象抽象到类似结构的 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 实例插入任何类型的值(及其选项),其中包括...
但在这种情况下似乎还不够;我需要什么正确的类型/导入/转换?