【发布时间】:2023-03-18 00:55:01
【问题描述】:
我很想知道在使用OFFSET 和LIMIT 分页之前是否有更优化的方法从 JOOQ 查询中获取总行数
我们尝试使用 JOOQs 合成 SEEK 子句,但是由于我们的 ID 是无序 UUID,它不起作用。
我们当前的实现是执行两次查询,第一次是在我们设置偏移量和限制以获取结果/行数之前。
然后我们在第二个查询中得到结果。
SelectQuery<Record> select = context.selectQuery();
select.addSelect(FOO_TABLE.fields());
select.addFrom(FOO_TABLE);
int totalElements = select.fetch().size();
select.addOffset(20);
select.addLimit(50));
List<Foo> paginatedFoo = select.fetchInto(Foo.class);
这仅仅是这个实现/设计必须接受的东西,还是有任何 JDBC 驱动程序可以消除在 DB 上执行两个查询的需要?
欢迎任何意见或建议!
【问题讨论】: