我想從物體和串列物件中進行查詢。假設我有一個名為“Customer”的物體,并且我有一個物件 Potential 的潛在客戶串列。
Customer {
id, name, address, ...
}
Potential {
id, name, address, ...
}
在我的存盤庫中,如果我想自定義查詢以獲取客戶,我會按如下方式撰寫查詢
@Query("SELECT c FROM Customer c WHERE c.status = :status")
List<Customer> findAllSpecialCustomers(String status)
但是如果我目前有一個串列物件
List<Potential> potentials
我想將它包含在上面的查詢中,我該怎么做?或者甚至有可能嗎?我想這樣做的原因是因為兩個物體代表不同的表,但我想對兩個物體的組合記錄進行排序和分頁。此外,potentials從圖形資料庫中查詢。而物體 Customer 來自 mysql 資料庫。
基本上,我有一個potentials從圖形資料庫中查詢的串列物件。我想Customer通過@Query 將它與來自 mysql 資料庫的物體結合起來,并將排序和分頁應用于組合記錄。
uj5u.com熱心網友回復:
使用本機聯合查詢,而不是使用Customeror Potential,創建另一個 POJO 類來映射查詢結果。
uj5u.com熱心網友回復:
我假設您的 Potential 類中有一些屬性可以標識客戶。為了論證,我們假設兩個類中的 id 欄位相同,例如,您希望將 id == 123 的 Potential 與 id == 123 的 Customer 配對。
我能想到的最簡單的事情是將 Potentials 串列映射到 Integers 串列(或任何型別的 id),然后將其用作 Customer 查詢中“in”子句的引數。例如,
@Query("SELECT c FROM Customer c WHERE c.id in :idList")
List<Customer> findCustomersById(List<int> idList)
和
findCustomersById(
potentials
.stream()
.map(Potential::getId)
.collect(Collectors.toList()
);
至于“壓縮”兩個串列,即將兩個串列中的匹配項配對,我將其作為練習留給您:-)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311390.html
