Java 在Springboot中显示rownum
我的要求是从select子句中选择行号和其他字段。我可以使用entitymanager.createNativeQuery执行它。在这里,我可以构建查询并执行,但在这种情况下,我无法使用Criteria builder和规范API 我想执行以下查询: 从表c中选择*作为d,其中 需要在criteria builder的帮助下创建DynamicCondition,我可以使用CriteriaQuery和CriteriaBuilder的所有可用功能构建条件 请建议 也可以通过创建SQL函数来使用自定义SQL函数吗 我试图将其创建为:Java 在Springboot中显示rownum,java,spring,postgresql,jpa,criteriaquery,Java,Spring,Postgresql,Jpa,Criteriaquery,我的要求是从select子句中选择行号和其他字段。我可以使用entitymanager.createNativeQuery执行它。在这里,我可以构建查询并执行,但在这种情况下,我无法使用Criteria builder和规范API 我想执行以下查询: 从表c中选择*作为d,其中 需要在criteria builder的帮助下创建DynamicCondition,我可以使用CriteriaQuery和CriteriaBuilder的所有可用功能构建条件 请建议 也可以通过创建SQL函数来使用自定义
metadataBuilder.applySqlFunction(
"getrownum",
new StandardSQLFunction(
"row_number() over(?) as ?",
StandardBasicTypes.STRING) {
});
并希望将其用作:
Expression rownum = criteriaBuilder.function("getrownum",
String.class,expression,expression);
但无法在条件中使用此函数,因为我不知道如何创建和传递表达式参数。有什么建议吗?你好!rownum不是entityManager.createQueryyourCriteria.getResultList返回列表中overy项的索引吗?是的,如果我的查询检索到10条记录,它的行号将按顺序为1到10。所以,如果我的实体中有rownum,并执行本机查询,它将映射到它并执行。我得到了预期的结果。但我需要使用CriteriaBuilder来实现它,以从它提供的所有功能中获益。