ORMliteのドキュメントによると、結合ステートメントは、外部オブジェクトフィールドを介して接続されたテーブルでのみ使用できます。
したがって、私が見る最初のアプローチは、異物を使用して、必要なすべての値を取得することです。たとえば、テーブル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;
}
}
このコードが正確に機能するかどうかはわかりません。アイデアを説明したかっただけです。
私が知っているように、一度に複数のテーブルを照会することはできません。
関連するORMLiteのドキュメントを参照してください。ライブラリのバージョン4.42以降、Joinステートメントがサポートされています。