【发布时间】:2021-01-09 21:09:27
【问题描述】:
我有一个表 SUBSCRIPTION,我想在一个连接中运行多个用 JOOQ 编写的 selectCount,并使用不同的谓词连接到数据库。
为此,我创建了一个查询列表:
List<Query> countQueries = channels.stream().map(c ->
selectCount().from(SUBSCRIPTION)
.innerJoin(SENDER).on(SENDER.ID.equal(SUBSCRIPTION.SENDER_ID))
.innerJoin(CHANNEL).on(CHANNEL.ID.equal(SUBSCRIPTION.CHANNEL_ID))
.where(SENDER.CODE.equal(senderCode))
.and(CHANNEL.CODE.equal(c))
).collect(toList());
最后,我使用batch 启动了这个查询列表:
using(configuration).batch(countQueries).execute();
我希望在execute 的返回值中包含上述查询的结果,但我得到了一个用0 值填充的整数数组。
这是使用 JOOQ 运行多个 selectCount 的正确方法吗?
execute方法返回的整数数组的含义是什么?
我在 JOOQ 博客中查看了这个 link,谈论“如何在单个查询中计算多个聚合函数”,但这只是关于 SQL 查询,没有 JOOQ 方言。
【问题讨论】:
标签: java sql postgresql jooq