java – Spring Data:限制自定义查询的结果

在我的 Spring Data存储库中,我(必须)使用@Query注释使用自定义查询.我知道我可以限制命名查询中的结果数量

可迭代<人> findFirst5OrderByLastName()

或者可以通过传递类似的可分页来限制结果的数量

可迭代<人> findByLastName(String lastName,Pageable pageable)

但是在使用自定义@Query注释时是否可以实现相同的目标?

TIA

编辑

因为我看到我的问题有点令人困惑,有些澄清:
我想要的是在使用自定义查询时限制我得到的结果数量,这样我就不会这样做

1)需要通过可分页指定结果大小

2)需要使用命名查询来指定结果大小

实际上我希望在调用方法时结果数量的限制是完全透明的(因此不传递Pageable)并且不依赖于Spring Data的命名方案(因为方法的意义/功能最好通过自定义名称)

最佳答案 你可以试试这个:

@Entity
@Table(name = "persons") 
public class Person {
    //...
}

@Query(value = "select * from persons limit 50", nativeQuery = true)
List<Person> getFirst50();

不要忘记检查SQL Server是否支持limit关键字.

点赞