2014-02-21 66 views
1

我有一个查询,我想限制结果集的大小。由于JPA不支持“LIMIT”,我一直在努力制定正确的方法。我曾尝试过:使用@Query偏移限制结果集

@Query("SELECT w FROM WardTransaction w WHERE w.visit = :visit ORDER BY w.admissionDateTime DESC").setMaxResults(1) 
public WardTransaction findCurrent(@Param("visit") Visit visit); 

这是不正确的。我只是在寻找正确语法的一些指导。

我的仓库代码:

回答

3
@Query("SELECT w FROM WardTransaction w WHERE w.visit = :visit ORDER BY w.admissionDateTime DESC") 

以上是查询方法定义,在查询中setMaxResult您需要使用可分页的对象,因为它遵循。

​​

JPA存储库,因为它遵循>

Pageable pageSpecification = PageRequest(int page, int size) 

法相结合的可分页和SimpleJpaRepository是解决必须实现SimpleJpaRepository

设置可分页对象。

看看here

如果您正在使用的EntityManager和NamedQueries,也适用于查询对象的方法setMaxResult,但它是一个不同的故事。

+0

其实,我有一个存储库类 - 我不知道这是否有帮助?我会看看参考.. – skyman

+0

是的,你正在应用方法上面的@Query,尝试改变我对SimpleJpa和Pageable的推荐 – Koitoer