【发布时间】:2019-07-11 23:34:36
【问题描述】:
好像很简单
type Db[F[_], A] = Kleisli[F, Connection, A]
type Transactor[DB[_], F[_]] = DB ~> F
Сan 也可用于构建功能性 JDBC 层
【问题讨论】:
-
这是一个非常有趣的问题,但是它可能会被关闭,因为它主要是基于意见的,唯一能给出客观答案的人是罗伯·诺里斯本人。无论如何,我冒昧地在 Scala Gitter 频道中交叉发布了这个。 Rob 和 Fabio Labella 确实回答了:“Free 表示的优点是不能混合连接(意外),缺点是不能混合连接(故意,例如从一个 Db 流式传输到另一个 Db)” - 法比奥。
-
“doobie 的早期版本是这样的具体 Kleisli,而当前默认的免费解释器会解释为 Kleisli。正如 Fabio 所指出的,您不能泄露与 Free 的连接,因为没有连接。这是使用 Free 的动机。这是对 Slick(3.0 之前)的回应,这使得泄漏连接变得非常容易“ - Rob。
-
另外,他们两人都确认会有 tagless 版本的 doobie。显然有一个分支已经这样做了,并且可能下一个版本将完全 tagless。我所有“说”的来源:gitter.im/scala/scala?at=5cfe6505bf4cbd167c619960
-
@LuisMiguelMejíaSuárez 感谢您的努力!