Uel*_*ter 17 java spring jpql spring-data-jpa
编辑:关于此问题的第二和第四个答案提供了解决此问题的解决方案有关Spring-Data-JPA注释的setMaxResults?
目标:使用Spring Data JPA存储库和Spring Query注释,按属性z获取最大/最小元素.
到目前为止我有什么
@Query("SELECT xelement FROM x xelement ORDER BY xelement.z")
public List<X> findFirstElement();
Run Code Online (Sandbox Code Playgroud)
问题:此查询获取所有元素(这不是真正有效).如果我直接使用EntityManager,我可以使用设置结果的数量
entityManager.setMaxResults(1)
Run Code Online (Sandbox Code Playgroud)
只获得第一个元素.
问题:如何使用@Query注释指定最大结果数?
想法:使用大小为0的PageRequest还是要走的路?
约束:我知道"FindFirstBy ...."查询功能,但我想/必须使用@Query注释.
ahm*_*tin 10
只需将nativeQuery添加到@Query注释即可使用sql的limit属性.但是,还有另一种更好的方法.存储库方法中的可分页类将在不触及@Query注释的情况下解决您的问题:
@Query(value = "SELECT xelement FROM x xelement ORDER BY xelement.z")
List<X> findFirstElement(Pageable limit);
Run Code Online (Sandbox Code Playgroud)
要设置限制和偏移量,请使用以下方法调用此存储库方法:
List<X> xValues = xRepository.findFirstElement(new PageRequest(0, 1));
Run Code Online (Sandbox Code Playgroud)
这里1对应于您想要的限制.
小智 -2
尝试这样做:
@Query(value = "SELECT xelement FROM x xelement ORDER BY xelement.z LIMIT 1",
nativeQuery = true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21161 次 |
| 最近记录: |