Spring JPA組合查詢,根據條件查詢

2021-08-30 19:22:37 字數 998 閱讀 6756

`spring jpa組合查詢,根據條件查詢

接手乙個專案,資料庫處理用的jpa,據留下這個攤子的人說很好用,大概用了一下,在一些基本的增刪改查上面確實方便,不用寫sql,但今天遇到了乙個稍微複雜一點的需求,之前mybatis是用的拼接sql語句或者在xml裡面用這種方式,在jpa這裡好像沒這個功能,不過實現方式也不難,用sql裡面自帶的if語句就行

廢話不多說,直接上**

@query(nativequery = true, value = "select count(1) from trade_info t left join role_info r on t.role_id = r.id " +

"where t.order_pay_state <> 1 and r.nick_name like :nickname" +

"and if(:platform=0, t.pay_type<>0, t.pay_type=:platform) " +

"and if(:maxtime=0, t.create_time is not null, unix_timestamp(t.create_time) <= :maxtime) " +

"and if(:mintime=0, t.create_time is not null, unix_timestamp(t.create_time) >= :mintime) ")

public int findfailcount(@param("nickname") string nickname,

@param("platform") integer platform,

@param("maxtime") long maxtime,

@param("mintime") long mintime);

```不過這裡要注意幾個點

1.如果加了@param這個註解,那sql裡面一定要用冒號來引入引數,如 :key

2.如果沒有加@param,那需要用問號來引入引數,如 ?key

springjpa(五)QueryDsl查詢細

這邊介紹個簡便方法,使用projections。首先我們還是以學校和學生表作為例子。這邊我們先建乙個studentdto public class studentdto public void setid long id public string getname public void setna...

Spring Jpa 按時間段查詢

專案中有需求要按照名稱模糊查詢和時間段查詢資料,可能只有名稱沒有時間,也可能只有時間沒有名稱,也可能這幾個引數同時匹配,所以要多條件動態查詢。jpaspecificationexecutor 介面提供很多條件查詢方法 public inte ce jpaspecificationexecutor 比...

練習 根據和值查詢陣列中組合

一.習題與分析 題目 已知集合s,和乙個整數x,求集合s中任意兩個元素和值等於x的元素組合。演算法要求時間複雜度為o n log n 分析 1 組合情況總共有n n 1 2,若是一一測試,時間複雜度不夠。2 可以先進行排序,符合這個時間複雜度的排序,然後確定乙個元素,通過二分法查詢另一元素存在情況。...