问题标签 [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.
scala - 使用 in 子句批量更新
是否可以针对 sqlite db 执行具有可变长度子句的批量更新?
这种默认方法会导致 scalikejdbc 记录参数被设置为对象(警告?),结果是没有应用更新。
我尝试使用参数绑定器,但无法将in (?)
参数设置为数组类型,因为 sqlite(及其 JDBC 驱动程序)不支持数组。
另一种方法是更改 SQL 文本以?
在子句中包含每个值。这对于批量更新是不可能的,因为不同的行具有不同数量的值。
postgresql - 在 PGConnection.getNotifications 中获取大小
我的 postgresql 数据库中的一个函数会在更新表时发送通知。我正在通过 scalikejdbc 轮询该 postgresql 数据库,以获取所有通知,然后对它们执行一些操作。此处解释了该过程。对 sql 表更新的典型反应式系统。我从 java.sql.Connection 获得 PGConnection。而且,在那之后,我以这种方式收到通知:
我试图通过将获取大小设置为 1000 并禁用自动提交来获取 1000 块的通知。但 fetch size 属性被忽略。
任何想法我怎么能做到这一点?我不想在通知数据集的单个地图中处理数十万条通知。
pgConnection.getNotifications.size 可能很大,因此,此代码无法很好地扩展。
谢谢!!!
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 { ... }
sql - Scala,元组的sql插值
我有一个在普通 sql 中看起来像这样的查询
我正在尝试从 scala 中执行此操作
但是它失败了,因为 scalikejdbc 不知道如何插入元组。
知道如何实现吗?我想我总是可以将元组列表转换为字符串,但问题是 scala 会用单引号将它包装起来,将所有内容都作为字符串处理。
postgresql - 如何使用 scalikejdbc 在自定义类型的 postgres 中保存记录?
就我而言,我在 postgres 中有一个枚举类型:
还有一些表,使用它作为列类型:
在 postgres 中,我可以像这样在表 A 中插入新记录:
Scalikejdbc 生成正确的 sql:
但失败并出现错误:
错误:列“t”的类型为 my_type,但表达式的类型为字符变化 提示:您需要重写或强制转换表达式。
我试图这样做:
另外,我尝试在 Scala 代码中添加枚举类型的隐式转换:
但这也没有帮助。
插入代码如下所示:
scala - 点燃 - 在 sql 命令中使用变量?
我想使用 sql 命令从缓存中读取。由于 sql 命令每次都是动态的,我需要将其作为变量输入,但不支持在 sql 命令中使用变量。这是我的代码:
问题是我使用的'$',错误说:
这query
是一个选择命令,如select field1, field2 from table name where condition1 like value1
如何解决?
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 的方式实现它。
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
postgresql - 使用 scalikejdbc 流式传输大表
我有一个返回大量数据的查询,我想使用提取大小将这些数据从 postgres 流式传输到 scala。我的代码看起来像这样
在其他课程中,我这样称呼它
使用此代码,上面的源将只返回最后 n 个获取的条目,如何从可以迭代所有数据的流中获取迭代器?
scala - 将进化应用到 ScalikeJDBC 内存测试数据库
我在 Play 中使用 ScalikeJDBC。我想为我的 Specs2 测试将进化应用到内存数据库。
这失败了,因为没有应用进化。
application.conf包括
Evolutions.default/1.sql包括
(这在运行应用程序时有效)
build.sbt包括
如何获得测试以针对我的 ScalikeJDBC DB 运行演变?