0

したがって、他のテーブル(オブジェクト)への他の参照を含むテーブルのすべての行を選択できるかどうか疑問に思っていました。

class A{
    @DatabaseField  
    int somethingA; 
    @DatabaseField  
    String someStringA;

    @DatabaseField(canBeNull = false, foreign=true, foreignAutoRefresh=true)  
  >>  B instanceB;

    @ForeignCollectionField  
  >>  Collection< C > lotsOfCs;
}

class B{
    @DatabaseField  
    int somethingb; 
    @DatabaseField  
    String someStringB;
}

Classe C{
    @DatabaseField  
    int somethingC; 
    @DatabaseField  
    String someStringC;

    @DatabaseField( foreign=true, foreignAutoRefresh=true)  
   >> A instanceA;
}

では、BオブジェクトとCオブジェクトを含むテーブル/クラスAのすべての行を選択するにはどうすればよいですか?手動でBとCを取得する必要がありますか?

よろしく、

4

1 に答える 1

1

残念ながら、ORMLiteはデータベースからオブジェクトを取得するときに JOIN を使用しないため、1 つのクエリを使用して複数のテーブルから結果を取得する方法はありません。

B と C を手動で取得する必要がありますか?

はい。ただし、ORMLite に別のクエリで実行させるオプションがありますを使用foreignAutoRefresh = trueすると、ORMLite は二次クエリを実行してinstanceBA. 外部コレクションにを追加するeager = trueと、lotsOfCsそのクエリもAが作成される前に停止します。

于 2012-08-29T11:47:59.673 に答える