一尘不染

Spring Data JPA,如何通过Pageable获取最后一页

hibernate

我想获取一个实体的最后5条记录。但是无法通过Spring Data JPA来获取它。

最初,我试图通过LIMIT查询获取数据,但JPA不支持LIMIT。

后来我尝试了Pageable界面。

Pageable pageCount = new PageRequest(0, 10, Direction.ASC,"id");
List<TxnEntity> txnEntities = txnDAO
            .findByAccountEntity(accountEntity,pageCount);

这给了我第一页有10个对象。

但是我的要求是获取最后10或5个对象。那么如何通过PageableSpring框架中的接口获取它呢?


阅读 944

收藏
2020-06-20

共1个答案

一尘不染

我期望的输出是最后n条记录。

所以我用过Spring Data JPA 1.7内置查询

int n = 10;

Pageable pageCount = new PageRequest(0, n);

List<TxnEntity> txnEntities = txnDAO
        .findByAccountEntityOrderByIdDesc(accountEntity,pageCount);

现在,这将返回最后n条记录。

DAO将以降序返回所有记录,通过使用Pageable,我们可以从底部开始需要多少条记录。

很简单。

有关更多JPA查询的内置查询:http : //docs.spring.io/spring-
data/jpa/docs/current/reference/html/

2020-06-20