我正在使用JDBI來查詢我們的數據庫。我有兩個通過外鍵連接的表,我的查詢返回兩個表的連接。要將返回的值轉換爲對象,我已爲我的對象實現了ResultSetMapper
。查詢中的ResultSet
包含兩個表的列:t1.id, t1.name, t2.id, t2.name
。我如何根據表名分割?我在尋找這樣的代碼:通過表刪除結果集中的列
public class T1Object {
private long id;
private String name;
private T2Object t2Object;
}
public class T2Object {
private long id;
private String name;
}
public void map(ResultSet r) {
String t1Name = "Table1 name";
String t2Name = "Table2 name";
t1ResultSet = getResultSetByTableName(r, t1Name); // looking for this function's implementation
t2ResultSet = getResultSetByTableName(r, t2Name);
// convert each result set to an object using it's mapper...
}
的問題是,Table1
和Table2
有一些列具有相同的名稱,所以我已經考慮更改查詢,爲每列返回不同的名字,只是解析整個ResultSet
但是如果我有很多列,或者我只對Table2
進行更改(我將不得不記住更改映射器Table2
,但也要返回到此處並進行更改),但這不會很好地擴展。
我發現這個solution,但它看起來過於複雜。
任何想法將是非常讚賞....