我正在使用 JPA Criteria API,我有一个要求,我必须使用 UNION
子句,并且由于 JPA 不支持集合操作,我必须创建一个 native sql 查询.
在此查询中,我必须使用 JPA Criteria API 限制返回的行数,这是按以下方式完成的:
typedQuery.setFirstResult(gridParams.getStartRow());
typedQuery.setMaxResults(gridParams.getEndRow() - Math.max(0, gridParams.getStartRow()));
我们的应用程序同时在 Oracle 12c 和 Postgres 中运行,所以我面临的问题是 Oracle 和 Postgres 使用不同的语法来限制结果。
我该如何解决这个问题?
最佳答案
两个数据库系统都支持 ANSI 标准fetch first
:
select *
from some_table
order by something
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;
Oracle 从 12.1 开始支持它
关于sql - 限制从 oracle 和 postgres 中的查询返回的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628610/