JPAQuery仅支持JPQL的表达性,因此不支持窗口函数,但是分页应该可以使用
query.from(employee).orderBy(employee.id).limit(1)
如果你需要使用窗口函数,你需要employee.name和employee.id,这应该工作
NumberExpression rowNumber = SQLExpressions.rowNumber()
.over()
.partitionBy(employee.name)
.orderBy(employee.id).as("rowNumber");
query.select(employee.name, employee.id)
.from(SQLExpressions.select(employee.name, employee.id, rowNumber)
.from(employee).as(employee))
.where(Expressions.numberPath(Long.class, "rowNumber").eq(1L))
.fetch();