5
我有表A,B,C,D,E和我在做內部連接。
我只需要結果中的部分數據。例如,我需要A.name
列,D.phoneNumber
列。ORMLite - 如何處理加入的結果
我使用的方法join()
。
我該如何處理結果?我是否應該瀏覽所有課程,以獲取我需要的所有數據?如果是,那麼做一個簡單的方法是什麼,因爲經歷所有這些似乎有點複雜。
我應該創建一個類只是結果,不管怎樣的結果映射到了嗎?
我有表A,B,C,D,E和我在做內部連接。
我只需要結果中的部分數據。例如,我需要A.name
列,D.phoneNumber
列。ORMLite - 如何處理加入的結果
我使用的方法join()
。
我該如何處理結果?我是否應該瀏覽所有課程,以獲取我需要的所有數據?如果是,那麼做一個簡單的方法是什麼,因爲經歷所有這些似乎有點複雜。
我應該創建一個類只是結果,不管怎樣的結果映射到了嗎?
按照ORMlite文檔,您只能使用連接語句通過異物場連接的表。
所以第一個方法,因爲我看到它是用異物和retreive你需要的所有值。例如,如果你查詢你的表A和B
QueryBuilder<A, Integer> aqb = aDao.queryBuilder();
QueryBuilder<B, Integer> bqb = bDao.queryBuilder();
List<A> results = aqb.join(bqb).query();
for (A a : results){
String name = a.getName();
String phone = a.getB().getPhone();
}
,而A和B類看起來是這樣的:
....
public class A{
....
@DatabaseField
private String name;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private B b;
....
public B getB(){
return b;
}
....
public String getName(){
return name;
}
}
....
public class B{
....
@DatabaseField
private String phone;
public String getPhone(){
return phone;
}
}
我不知道究竟該代碼將工作,我只是想來形容這個想法。
據我所知,你可以爲多個表一次無法查詢。
查看related ORMLite documentation。 從庫的版本4.42開始支持加入語句。
所以你說的話是basicly,我要高度重視剛剛通過所有的類A,B,C,d,E,我應該檢索什麼clasess我需要的價值? 如果是的話,那麼我會說,創建自定義SQL並不使用ORM會更好。 – Peter
一般 - 是的。 ORMlite是一個輕量級庫,可以簡化大多數常用的sql操作。對於你正在做的事情更容易使用SQL請求,檢索光標,並通過它。 – rus1f1kat0R
足夠公平的幫助 – Peter