使用spring-data-jpa @Query注释查找最大查询结果

时间:2014-07-28 05:56:29

标签: jpa spring-data-jpa

可以使用.setMaxResults(1).getResultList()和@Query来限制查询结果 - 类似于:

@Query("SELECT l FROM LocationLog l WHERE l.visit = :visit ORDER BY l.eventTime").setMaxResults(1).getResultList()
public LocationLog findLast(@Param("visit") Visit visit);

此代码不正确,因为setMaxResults等在@Query之外?l

1 个答案:

答案 0 :(得分:1)

您无法在@Query注释中设置分页选项,但可以通过其他方式完成。您可以将方法声明更改为

public LocationLog find(@Param("visit") Visit visit, Pageable pageable);

然后,您将能够将其他参数传递给查询调用:

Pageable firstFive = new PageRequest(0, 5);
LocationLog locLog = locationLogDao.find(visit, firstFive);

还可以选择了解查询结果的当前上下文,您可以使用Page接口更改方法返回类型为Page<LocationLog>。您可以找到所有必要的信息here