我正在使用 Spring Boot、Spring Data 編寫一個應(yīng)用程序。我正在嘗試實現(xiàn)基于不同過濾器參數(shù)的過濾功能。使用 Spring Data 查詢我們可以定義相當(dāng)復(fù)雜的邏輯,例如:@Query("SELECT u FROM User u WHERE u.status = 1")Collection<User> findAllActiveUsers();但是,如果在我們發(fā)出可能相當(dāng)復(fù)雜的實際過濾請求之前,where 子句的數(shù)量、順序、限制、不同參數(shù)的數(shù)量都是未知的,該怎么辦?現(xiàn)在,過濾器參數(shù)以 json 對象的形式發(fā)送,我解析并檢索它們,結(jié)果 sql 查詢可能如下所示:SELECT * FROM tableWHERE field1 != `value1` and (field1 != ` value2 `OR (field1 = `value3` AND filed2 < 3))AND field2 != 99是否可以生成具有未定義(直到實際過濾器請求,在運行時)數(shù)量的參數(shù)、where 子句和其他內(nèi)容的動態(tài)復(fù)雜查詢?
有沒有辦法動態(tài)生成 Spring Data Jpa 查詢?
慕無忌1623718
2023-09-13 17:19:00