问题标签 [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 - 如何通过一个请求将各种表中的数据放入单独的列表中
例如,我有一些实体。每个实体都有一些属性。DB看起来是这样的:
我的模型如下所示:
我正在尝试通过以下方式获取具有属性的实体(重要:不加入)doobie
:
结果是一个List[Product]
:
如何修改 doobie 请求以将结果分成两个单独List[Entity]
的和List[EntityAttribute]
?
scala - 如何使用 Doobie 在插入语句中获得可选结果?
我有一个可选的插入查询:
使用以下命令运行此查询:
失败了
结果集已用尽:预计会有更多行
那么condition
是假的。
如何Optional[Long]
使用 Doobie 从插入语句中获取结果?
UPD
.withGeneratedKeys[Long]("id")
只是Long
为了理解
如何检查id
?
scala - 杜比。编写 .update.withGeneratedKeys() 和 .update.run
参考这个问题。
我想通过某种条件插入一些实体。它可以插入也可以不插入。如果条件为真,则插入实体。我想在各种表中插入一些其他数据。它看起来像这样:
问题是这不能编译,因为第一个插入是 afs2.Stream
而第二个不是。
我试图_ <- inserts.reduce...
用_ = inserts.reduce
. 该应用程序可以编译,但inserts
在第二行不会发生。
UPD
我解决这个问题的可能方法:
这行得通,但恕我直言,这并不漂亮。有更好的方法吗?
scala - 为什么 Doobie 使用免费的 monad?
看起来很简单
也可用于构建功能性 JDBC 层
postgresql - Doobie:创建带有值的常量表
Postgres 允许使用以下语法创建用于查询的常量表:
或内联版本:
假设我有一个案例类的实例Meta[T]
,T
有没有一种方法可以编写一个通用函数来获取List[T]
并创建一个T
值表。
postgresql - 将动态变量传递给 INSERT INTO 查询时,在“$1”处或附近出现 Scala doobie 语法错误
我正在关注doobie的官方教程。
这是我的代码:
然后我运行并创建表:
(drop, create).mapN(_ + _).transact(xa).unsafeRunSync
上面的所有内容都有效,并且与官方文档中的一样。
这是我自己的代码,之后是:
我也试过:
sql"""insert into person (id, name, age) VALUES $first, $second""".update.run.transact(xa).unsafeRunSync
但是他们都给了我:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"
如何动态传递多个(可能超过 2 个)值INSERT INTO
?
scala - 使用泛型的 Doobie 批量更新
你能用泛型类型在 doobie 中进行批量更新吗?
这段代码:
给我:could not find implicit value for parameter W: doobie.util.Write[T]
scala - 使用 doobie 阅读
我已经定义了存储库:
它的实现:
在应用程序中,我正在执行以下操作:
问题是我怎样才能将它打印到控制台?(通常对提取的数据进行一些操作)
我试过了:
但不成功
scala - Doobie 更新和插入案例类语法
Doobie 可以select *
使用案例类来方便和正确地传递参数,但我不知道如何以类似的方式使用update
and insert
。
例如,给定一个这样的案例类:
我可以很好地select
记录。这种漂亮的语法是可能的,因为 Doobie 遍历案例类属性并通过将它们的名称与数据库记录字段Course
匹配来为它们分配值:courses
但是insert
,需要手动列出所有案例类属性,并与值匹配,这是可怕且容易出错的:
也update
同样可怕:
有没有更好的办法?
scala - SQL `NULL` 在第 1 列读取(JDBC 类型为 null),但映射到非选项类型
我想使用此查询选择最大值(表中的所有字段都不为空):
我知道,那张桌子可能是空的,所以我用这个:map(_.map(_ + 1).getOrElse(1))
。
问题是这个查询产生了这个错误:
SQL
NULL
在第 1 列读取(JDBC 类型为 null),但映射为非 Option 类型;在这里使用选项。请注意,JDBC 列索引是从 1 开始的。doobie.util.invariant$NonNullableColumnRead:SQLNULL
在第 1 列读取(JDBC 类型为 null),但映射为非 Option 类型;在这里使用选项。请注意,JDBC 列索引是从 1 开始的。
如何解决?没有羽毛笔(使用纯 doobie)相同的查询正常工作