我有一个存储库接口,其中包含一些使用@Query注释的抽象方法.现在我想为这些查询添加限制和偏移支持.
例:
public interface ProductRepository
extends CrudRepository<Product, Long> {
@Query("from Product")
List<Product> findAllProducts();
}
Run Code Online (Sandbox Code Playgroud)
这样的事情会很好
public interface ProductRepository
extends CrudRepository<Product, Long> {
@Query("from Product limit :limit ")
List<Product> findAllProducts(@Param("limit") Integer limit);
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有一个解决方案,我创建了一个接口的实现(http://stackoverflow.com/questions/3479128/jpql-limit-number-of-results)但我不知道是否有可能添加偏移和限制查询或是否有注释.
Wil*_*ler 11
用户"他的"在评论中说的+1:
"解决根本问题的标准方法是使用PagingAndSortingRepository"
这是一个例子.我正在投掷排序只是一个额外的奖励:
public interface ArtifactRepo extends JpaRepository<Artifact, Long> {
Page<Artifact> findByComponentKey(String componentKey, Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)
(如果你愿意,你可以在上面使用@Query,但是JPQL本身并不支持限制,正如"他的"所指出的那样.)
然后在调用它时,使用
PageRequest pageRequest =
new PageRequest(0, 1, Sort.Direction.DESC, "buildNumber");
Page<Artifact> artifactsPage =
artifactRepo.findByComponentKey(componentKey, pageRequest);
Run Code Online (Sandbox Code Playgroud)
我写了关于这个主题的各种博客文章,这可能会有所帮助:
http://springinpractice.com/blog/categories/chapter-02-data/
归档时间: |
|
查看次数: |
19564 次 |
最近记录: |