问题标签 [scalikejdbc]

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.

0 投票
1 回答
545 浏览

scala - 使用 in 子句批量更新

是否可以针对 sqlite db 执行具有可变长度子句的批量更新?

这种默认方法会导致 scalikejdbc 记录参数被设置为对象(警告?),结果是没有应用更新。

我尝试使用参数绑定器,但无法将in (?)参数设置为数组类型,因为 sqlite(及其 JDBC 驱动程序)不支持数组。

另一种方法是更改​​ SQL 文本以?在子句中包含每个值。这对于批量更新是不可能的,因为不同的行具有不同数量的值。

0 投票
1 回答
164 浏览

postgresql - 在 PGConnection.getNotifications 中获取大小

我的 postgresql 数据库中的一个函数会在更新表时发送通知。我正在通过 scalikejdbc 轮询该 postgresql 数据库,以获取所有通知,然后对它们执行一些操作。此处解释了该过程。对 sql 表更新的典型反应式系统。我从 java.sql.Connection 获得 PGConnection。而且,在那之后,我以这种方式收到通知:

我试图通过将获取大小设置为 1000 并禁用自动提交来获取 1000 块的通知。但 fetch size 属性被忽略。

任何想法我怎么能做到这一点?我不想在通知数据集的单个地图中处理数十万条通知。

pgConnection.getNotifications.size 可能很大,因此,此代码无法很好地扩展。

谢谢!!!

0 投票
0 回答
113 浏览

scala - 使用fixture.FlatSpecLike将特征混合到ScalaTest中的测试方法中

使用ScalaTest'sorg.scalatest.FlatSpecLike时,我可以创建一个 Fixture 并将其混合到测试中,如下所示:

但是,当我改用时org.scalatest.fixture.FlatSpecLike,我不能这样做:

有人可以建议我如何将特征混合到测试方法中fixture.FlatSpecLike吗?

更新:

~test:compile这是我运行后编译器的错误SBT

Intellij 显示类似Type mismatch, expected () => Any, actual: Foo.this.Fixture with Object { ... }

0 投票
2 回答
319 浏览

sql - Scala,元组的sql插值

我有一个在普通 sql 中看起来像这样的查询

我正在尝试从 scala 中执行此操作

但是它失败了,因为 scalikejdbc 不知道如何插入元组。

知道如何实现吗?我想我总是可以将元组列表转换为字符串,但问题是 scala 会用单引号将它包装起来,将所有内容都作为字符串处理。

0 投票
1 回答
297 浏览

postgresql - 如何使用 scalikejdbc 在自定义类型的 postgres 中保存记录?

就我而言,我在 postgres 中有一个枚举类型:

还有一些表,使用它作为列类型:

在 postgres 中,我可以像这样在表 A 中插入新记录:

Scalikejdbc 生成正确的 sql:

但失败并出现错误:

错误:列“t”的类型为 my_type,但表达式的类型为字符变化 提示:您需要重写或强制转换表达式。

我试图这样做:

另外,我尝试在 Scala 代码中添加枚举类型的隐式转换:

但这也没有帮助。

插入代码如下所示:

0 投票
1 回答
154 浏览

scala - 点燃 - 在 sql 命令中使用变量?

我想使用 sql 命令从缓存中读取。由于 sql 命令每次都是动态的,我需要将其作为变量输入,但不支持在 sql 命令中使用变量。这是我的代码:

问题是我使用的'$',错误说:

query是一个选择命令,如select field1, field2 from table name where condition1 like value1

如何解决?

0 投票
0 回答
70 浏览

scala - 使用附加逻辑实现数据库访问的功能方式

目前,我的目标是使用 CRUD 方法与 DB 进行通信。在简单的操作之间我可能有一些额外的步骤(额外的业务逻辑可能会引发一些错误)。

第一个问题出现(2):我收到错误:

错误类型不匹配;发现:cats.effect.IO[Unit] required: Option[?] _ <- IO(log(a))

但是,如果我记录任何插入((3)(4))的结果,那么一切正常。可能是因为结果类型Option[Something]vs的不同Something,但我认为它会与此相同:

第二个问题是如何正确处理(7)回滚事务中的错误?我是否必须使用模式匹配并执行以下操作:

或者我可以在我的内部抛出错误operation并返回Unit而不是Either[Throwable, Unit]

(8)另外,我对and有疑问(9)。是否是开始实际处理和处理任何错误的正确方法?

我尝试使用这种方法执行相同的步骤:

但结果我得到了太深的match-case条款,很难阅读和理解。我是 FP 的新手,但我想以 FP 的方式实现它。

0 投票
1 回答
972 浏览

sql - PostgreSQL jsonb 更新多个嵌套字段

I 表在 postgresql 数据库中有一个id字段和一个jsonb字段。jsonb 的结构如下所示:

我需要做的是更新lastModified和其中一个计数器:

因此,例如,如果我这样做,update("some-id", Some("counter2"))我需要lastUpdated成为当前日期时间并counter2递增到201.

我正在使用 ScalikeJDBC,这是我到目前为止的地方:

但我收到以下错误:

org.postgresql.util.PSQLException: The column index is out of range: 4, number of columns: 3

我尝试了其他方法,但我无法使其工作。是否可以将其写为单个查询?

这是一个坏掉的小提琴,可以帮助测试https://www.db-fiddle.com/f/bsteTUMXDGDSHp32fw2Zop/1

0 投票
0 回答
226 浏览

postgresql - 使用 scalikejdbc 流式传输大表

我有一个返回大量数据的查询,我想使用提取大小将这些数据从 postgres 流式传输到 scala。我的代码看起来像这样

在其他课程中,我这样称呼它

使用此代码,上面的源将只返回最后 n 个获取的条目,如何从可以迭代所有数据的流中获取迭代器?

0 投票
1 回答
231 浏览

scala - 将进化应用到 ScalikeJDBC 内存测试数据库

我在 Play 中使用 ScalikeJDBC。我想为我的 Specs2 测试将进化应用到内存数据库。

这失败了,因为没有应用进化。

application.conf包括

Evolutions.default/1.sql包括

(这在运行应用程序时有效)

build.sbt包括

如何获得测试以针对我的 ScalikeJDBC DB 运行演变?