一、使用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