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

por*_*tux 6 java spring spring-data spring-data-jpa

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

Iterable<Person> findFirst5OrderByLastName()

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

Iterable<Person> findByLastName(String lastName, Pageable pageable)

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

TIA

编辑

正如我所看到的,我的问题有点令人困惑,请澄清一下:我想要的是在使用自定义查询时限制我得到的结果数量,这样我既不

1) 需要通过 pageable 指定结果大小

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

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

Cep*_*pr0 3

你可以试试这个:

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

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

不要忘记检查您的 SQL 服务器是否支持limit关键字。