JPA的查詢方法總結


一、使用where條件
上一篇我們使用JPA進行了數據源的訪問,默認JPA已經實現了好幾個接口可以調用。但是,在實際的業務中,查詢語句不可避免地需要使用where、order by等語句。

我們用商品數據來做例子,添加一個價格字段price,按價格范圍查詢,看看怎么來實現。

方式一:通過方法名稱來實現
public interface GoodsRepository extends JpaRepository<Goods, Long> {
List<Goods> findByPriceBetween(Double startPrice, Double endPrice);
}
Spring Data JPA 查詢方法支持的關鍵字(可參考:https://docs.spring.io/spring-data/jpa/docs/2.2.x/reference/html/#repositories.query-methods)

Table 2.2. Supported keywords inside method names

 

 

 

 

方式二:通過自定義SQL來實現
在現實中,可能會含有非常復雜的SQL語句,或者為了性能優化,我們需要自定義sql。JPA提供注解和XML配置這2中方式。

public interface GoodsRepository extends JpaRepository<Goods, Long> {
@Query(value = "select * from goods g where g.price between :startPrice and :endPrice", nativeQuery = true)
List<Goods> findByPriceBetween(Double startPrice, Double endPrice);
}
二、order by查詢
使用order by也可以編寫在方法名上,可以把以上例子改為

public interface GoodsRepository extends JpaRepository<Goods, Long> {
List<Goods> findByPriceBetweenOrderByPriceAsc(Double startPrice, Double endPrice);

————————————————
版權聲明:本文為CSDN博主「loophome」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/loophome/article/details/87186778


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM