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;
}

那么如何选择表/A类的所有行,包括B和C对象,我需要手动获取B和C吗?

问候,

4

1 回答 1

1

不幸的是,ORMLite在从数据库中获取对象时不使用 JOIN,因此无法使用一个查询从多个表中获取结果。

我需要手动获取B和C吗?

是的,尽管您可以选择让 ORMLite 在单独的查询中为您执行此操作。使用foreignAutoRefresh = true,ORMLite 将执行辅助查询以instanceB在您获得A. 如果您将 an 添加eager = truelotsOfCs外部集合,则该查询也将在A创建之前关闭。

于 2012-08-29T11:47:59.673 回答