小编Ale*_*lex的帖子

在Slick中选择许多任意列

我正在尝试SELECT *在Slick中对视图运行一个样式的查询.理想情况下,我最终会得到一个函数,您可以将一组列名作为a Seq[String]并执行查询SELECT col1, col2, ... FROM view.如果这不可行那么只返回所有列(SELECT * FROM view)是可以接受的.

我知道我可以通过Table为这个视图定义一个类以及一个附带的case类来做到这一点,但是其中一些视图有数百个列(这需要嵌套元组,假设元组有22个元素限制),那里有许多视图我必须这样做,因此需要编写/生成/维护很多代码.如果可能的话,我想避免这种情况.

这在Slick可行吗?通过定义一个Table类而不必在静态代码中定义列(用动态列字符串列表初始化一些类是可以接受的),或者只是生成一个SQL查询,我们自己使用sql"""..."""并以某种方式.as[...]处理返回一组任意长度的列?

我不需要对实际的列类型做任何特殊的事情:在数据库方面,我们有各种类型的混合,但如果它们在Slick方面都被视为文本列,那对我来说没问题.

sql scala slick

12
推荐指数
1
解决办法
676
查看次数

jOOQ 的 fetchLazy() 真的很懒吗?

我正在使用 jOOQ 3.4.2 使用 Scala 查询 PostgreSQL 数据库。我想一次获取一小块结果集,而不将整个结果集加载到内存中,因为查询可能返回许多行。我有以下代码:

val query = context.selectFrom(table)
                   .where(conditions)
                   .orderBy(orderField)
                   .fetchSize(1)
val cursor = query.fetchLazy()
// Iterate through cursor using cursor.fetchOne()
Run Code Online (Sandbox Code Playgroud)

看起来 jOOQ 会在我调用时将整个结果集(或至少是结果集的一大块)加载到内存中fetchLazy(),甚至在我从游标中获取第一行之前(根据recvfrom()我看到的大量系统调用来判断)whilefetchLazy()正在被调用)。难道我做错了什么?

postgresql jdbc jooq

5
推荐指数
1
解决办法
1842
查看次数

标签 统计

jdbc ×1

jooq ×1

postgresql ×1

scala ×1

slick ×1

sql ×1