问题标签 [doobie]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 在 Doobie 中并行运行查询
是否可以使用 Doobie 并行运行多个查询?
我有以下(伪)查询:
我尝试的是以下内容:
但是,没有找到 的 NonEmptyParallel 实例ConnectionIO
。
错误:(107, 54) 找不到参数 p 的隐式值:cats.NonEmptyParallel[doobie.ConnectionIO,F] val result = (program(i1),program(i2)).parMapN{case (a ,b) = > a ++ b}
我是否遗漏了一些显而易见的事情或尝试了一些无法完成的事情?谢谢
scala - 列出多个匿名/下划线参数以供理解
我对 Scala/功能有点陌生,所以我还不能使用技术语言。
我在理解方面遇到问题
我正在尝试重构 _ <- createBanco & _ <- createBancoMedio,它们都是 ConnectionIO[Int] 对象。
我想将它们转换为单个列表(createBanco,createBancoMedio),然后执行交易。
但是,我会通过这样做来改变理解的返回类型。我想知道是否有任何方法可以做到这一点而不影响 for 输出值
基本上,将列表视为手动编写多个匿名参数。
scala - Doobie 通过 ConnectionIO 程序列表进行交易
假设我有一个 Doobie 程序列表(全部带有Unit
类型参数,fwiw):
有什么办法可以在一笔交易中运行它们吗?在这里理解是行不通的,因为我只知道运行时程序列表的精确组成。本质上,我想我需要将它们折叠在一起。
我想这个问题一般适用于 Cats 中的 Free Monads,所以我也会标记 Cats。谢谢。
mysql - 如何使用 Play JSON 为 MySQL 创建 Doobie Meta 实例?
如何使用Doobie、MySQL 和 Play JSON 在查询级别实现基本的序列化/反序列化?
scala - 如何使用 doobie 连接到 Hive
有一个用于 hive 的 jdbc 驱动程序,但似乎没有完全运行。我使用默认的 doobie Transactor 连接到它,就像
我收到一条错误消息
[错误] 线程“主”java.sql.SQLFeatureNotSupportedException 中的异常:org.apache.hive.jdbc.HiveConnection.rollback(HiveConnection.java:1327) 不支持方法 [错误] doobie.free.KleisliInterpreter$ ConnectionInterpreter$$anonfun$rollback$1.apply(kleisliinterpreter.scala:643) [错误] 在 doobie.free.KleisliInterpreter$ConnectionInterpreter$$anonfun$rollback$1.apply(kleisliinterpreter.scala:643) [错误] 在 doobie.free。 KleisliInterpreter$$anonfun$primitive$1$$anonfun$apply$1.apply(kleisliinterpreter.scala:99)
如何使用 Doobie 连接到 Hive?
scala - 重试 Monix 任务 - 为什么这里需要 Task.defer?
我最近发现了一个在使用 Monix 时无法完全理解的案例Task
:
有两个函数(在队列消息处理程序中):
的 for-comprehension的内部doRollback
都是一组返回 monad 的doobie调用ConnectionIO[_]
,然后transact
在其上运行将组合变成 Monix Task
。
现在,如handle
函数所示,我希望整个过程在失败的情况下重试 5 次。神秘的部分是这个简单的调用:
并没有真正重新启动异常操作(在测试中验证)。为了获得这种重试行为,我必须明确地将其包装在 中Task.defer
,或者Task
以任何其他方式将其置于“上下文”中。
这就是我不完全明白的一点:为什么会这样?doRollback
已经给了我Task
实例,所以我应该可以调用onErrorRestart
它,不是吗?如果不是这种情况,我如何确定Task
我从“某处”获得的实例是否可以重新启动?
我在这里想念什么?
scala - 当 IO 卡在中间时如何编写 doobie 事务
我想编写一个基本的 doobie 读/写事务,但关键是IO
中间有一个返回调用。我想做这样的事情:
但我无法在IO
. 因此,在第二种情况下,我会被卡住,IO[ConnectionIO[Something]]
这意味着我的交易最终会像ConnectionIO[IO[ConnectionIO[Something]]
.
我想要的是一个ConnectionIO[IO[Something]]
我可以在单个事务中运行的结果,IO[IO[Something]]
然后我可以轻松地将其展平。(我不想运行IO
。)有意义吗?知道这是否有可能实现吗?
sql - 在 Scala 中的 Doobie 上的事务中获取或插入
我正在阅读 Doobie 文档并尝试在事务中进行简单的获取或创建。我从第一个查询中获得了一个选项,并尝试getOrElse
在 else 中执行并运行插入,但是我一直value map is not a member of Any
在getOrElse
调用中得到 a。获取现有行或创建新行instances
并在事务中返回该结果的正确方法是什么?
scala - 如何使用 doobie 对 Scala 中的 PostgreSQL 数据库执行字符串 SQL 语句列表?
我将以下 10 行 Python 代码移植到 Scala:
我有以下等效的 Scala 代码:
我想在单个事务中针对数据库执行(并打印)一堆 SQL 语句(假设它是 Postgres)并完成。
我如何使用doobie做到这一点?
笔记:
我无法将接口更改为我的
execute()
(包括我无法添加类型或隐式参数)。它必须接受字符串用户、密码等和一个可变参数,queries: String*
从而保持接口与 Python 接口相同。还请提及所需的所有进口
scala - 如何从 Async[IO] 创建 Async[Future]
我正在尝试在我的 doobie 存储库代码中隐式添加异步和同步。Sync and Async[F] 工作正常 IO。我想将它们转换为 Future 并面临问题
我试图从 IO 创建我自己的 Aync
我对在 asyncF 和括号中的两个函数的实现感到震惊 有人可以帮忙吗?