考慮一個包含 4 個欄位的表:id、name、age、date。現在我想使用這些欄位查找資料庫。所以這很簡單,我可以這樣做:
@Query("select d from data d where d.name=:name and d.age=:age and d.date=:date")
但問題是,姓名、年齡和日期是可選欄位,即年齡、姓名、日期可以為空。如果年齡為空,那么我應該使用名稱和日期查找資料庫,如果年齡和名稱為空,那么我應該單獨使用日期查找資料庫等等......
是否有可能以簡單的方式實作這一點,而不是為每個場景形成不同的查詢?因為我正在處理的真實場景有 6-7 個可選欄位,并且為每個欄位形成不同的查詢看起來非常奇怪。
uj5u.com熱心網友回復:
對于可選欄位,請使用:@Query("select d from data d where (:name is null or d.name=:name) and (:age is null or d.age=:age) and (:date is null或 d.date=:date)")
uj5u.com熱心網友回復:
看看這個:- Spring Data JPA 和 Null 引數...
https://www.baeldung.com/spring-data-jpa-null-parameters
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369933.html
