我正在使用JPA Criteria API,我有一个要求我必须使用UNION
子句,并且由于JPA不支持set操作,我不得不创建一个本机sql查询。
在此查询中,我必须使用JPA Criteria API限制返回的行数,具体操作如下:
typedQuery.setFirstResult(gridParams.getStartRow());
typedQuery.setMaxResults(gridParams.getEndRow() - Math.max(0, gridParams.getStartRow()));
我们的应用程序在Oracle 12c和Postgres中运行,所以我遇到的问题是Oracle和Postgres使用不同的语法来限制结果。
我该如何解决这个问题?
答案 0 :(得分:5)
两个数据库系统都支持ANSI标准fetch first
:
select *
from some_table
order by something
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;
Oracle开始支持12.1