JPQL选择具有实体ID的范围起始索引

时间:2014-06-05 08:53:40

标签: java sql jpa jpql

我想在一个宁静的网络服务中使用分页。我发现了很多代码如何在两个硬编码值(例如10-20之间)之间获得表的结果,但我需要设置起始索引稍微不同。我想从一个表中选择一个id之后的20行。 例如:

rowNo     id
  1       22
  2       56
  3       98
  4       24
  5       75
  6       27
  7       59
  8       45
  9       32
  10      85

现在我想在id 24之后选择5个项目。所以结果表应如下所示:

rowNo     id
  1       75
  2       27
  3       59
  4       45
  5       32

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用该构建:

public List(int first, int pageSize) {
 CriteriaBuilder...
 CriteriaQuery....
 Predicates.....

  TypedQuery<T> typedQuery = entitymanager.createQuery(CriteriaQuery);
   if (pageSize >= 0){
        typedQuery.setMaxResults(pageSize);
    }
    if (first >= 0){
        typedQuery.setFirstResult(first);
    }
    return typedQuery.getResultList();
}