我正在使用JDBI,我需要使用聚合函數來運行查詢。如何使用JDBI註釋將聚合查詢結果選擇爲元組?
我該如何去閱讀這個查詢的結果?我可以使用哪種返回類型以方便使用?
@SqlQuery("select count(*), location from Customers group by location")
public Type getCustomersCountByLocation();
我一個別名可能添加到聚合函數的結果,寫一個匹配POJO
@SqlQuery("select count(*) as customerCount, location from Customers group by location")
public List<CustomerLocation> getCustomersCountByLocation();
的POJO之中:
public class CustomerLocation {
private int customerCount;
private String location;
public CustomerLocation(int customerCount, String location) {
this.customerCount = customerCount;
this.location = location;
}
//getters
}
但是,這似乎是一個很多不必要的樣板。我可以爲這種查詢編寫一個適合所有情況的對象,但這會引入不必要的耦合。
JDBI支持任何類型的OOTB,它允許我選擇我的查詢結果爲任意正確類型的參數化n元組嗎?
僞代碼:
@SqlQuery("select count(*) as customerCount, location from Customers group by location")
public List<Tuple<Integer, String>> getCustomersCountByLocation();
好的建議,地圖可能更容易解釋。我完全忘記了這些映射器的存在,儘管我已經有了一個POJO。也沒有意識到我可以分配一個映射到一個特定的查詢。 – toniedzwiedz
謝謝。你可以在多個層次上分配映射器。方法級別具有較高的優先級,然後是級別級別,然後是應用級別映射器。 – Manikandan