我需要从DB只带一个结果.我怎么能用JPA做到这一点?
Select top 1 * from table
Run Code Online (Sandbox Code Playgroud)
我试过了
"从表格中选择t"
query.setMaxResults(1);
query.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
但没有奏效.还有其他想法吗?
Jor*_*rge 54
试试这样吧
String sql = "SELECT t FROM table t";
Query query = em.createQuery(sql);
query.setFirstResult(firstPosition);
query.setMaxResults(numberOfRecords);
List result = query.getResultList();
Run Code Online (Sandbox Code Playgroud)
它应该工作
UPDATE*
你也可以这样试试
query.setMaxResults(1).getResultList();
Run Code Online (Sandbox Code Playgroud)
小智 20
要在TypedQuery上使用getSingleResult,您可以使用
query.setFirstResult(0);
query.setMaxResults(1);
result = query.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
Rod*_*o R 16
2021 att:您可以在 Spring Data JPA 中使用 TOP 或 FIRST
例子:
User findFirstByOrderByLastnameAsc();
User findTopByOrderByAgeDesc();
Page<User> queryFirst10ByLastname(String lastname, Pageable pageable);
Slice<User> findTop3ByLastname(String lastname, Pageable pageable);
List<User> findFirst10ByLastname(String lastname, Sort sort);
List<User> findTop10ByLastname(String lastname, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
文档: https: //docs.spring.io/spring-data/jpa/docs/2.5.4/reference/html/#repositories.limit-query-result
最简单的方法是使用@Query和NativeQuery选项,如下所示:
@Query(value="SELECT 1 * FROM table ORDER BY anyField DESC LIMIT 1", nativeQuery = true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
105128 次 |
最近记录: |