ORMliteのドキュメントによると、外部オブジェクトフィールドを介して接続されたテーブルに対してのみjoinステートメントを使用できます。
私が見ている最初のアプローチは、異物を使用して必要なすべての値を取得することです。あなたは
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を照会した場合、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以降のライブラリでサポートされています。
基本的に私はクラスA、B、C、D、Eのすべてを通過する必要があると私は必要なclasessから値を取得する必要がありますか? 「はい」の場合は、カスタムSQLを作成してORMを使用しないほうがよいでしょう。 – Peter
一般的に - はい。 ORMliteは、最も一般的なSQL操作を簡素化する軽量ライブラリです。あなたがやっていることがはるかに簡単にSQL要求を使用するために、カーソルを取得し、それを通過します。 – rus1f1kat0R
ヘルプが十分に公正なもの – Peter