Ivá*_*nos 9 java spring jpa jpql spring-boot
我有一个包含一些测试数据的数据库,我想使用它们的属性 DATE 对它们进行体面的排序,并且只使用所有测试中的第一个。我的意思是,相当于 JPQL 中 SQL 的 TOP 1。
谢谢你的帮助!
在 spring jpa 你可以做这样的事情
Foo findTopByOrderByDateDesc(); //This will return 1st item
List<Foo> findTop10ByOrderByDateDesc(); //This will return top 10 item
Run Code Online (Sandbox Code Playgroud)
小智 5
最常见
Foo findFirstByOrderByDateDESC();
Run Code Online (Sandbox Code Playgroud)
使用@Query与nativeQuery = true
@Query(value="SELECT 1 * FROM "TableName" ORDER BY "DATE in db" DESC LIMIT 1", nativeQuery = true)
Foo findFirstByOrderByDateDESC(Long id); // name can be random
Run Code Online (Sandbox Code Playgroud)
Query
您通常在触发提取之前在对象上设置它:
entityManager.createQuery("...")
.setMaxResults(1)
.getResultList();
Run Code Online (Sandbox Code Playgroud)
使用 Spring Data Jpa 语法,您将使用类似以下内容的语法:
Optional<Test> findFirstByOrderByDateDesc();
Run Code Online (Sandbox Code Playgroud)
或者使用Pageable
:
Page<Test> test = repository.findAll(
PageRequest.of(0, 1, Sort.by(Sort.Direction.DESC, "date")));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12103 次 |
最近记录: |