所以我想知道是否有可能选择一个表的每一行,包括对其他表(对象)的其他引用,如:
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?
的问候,
答案 0 :(得分:1)
不幸的是,ORMLite在从数据库获取对象时不使用JOIN,因此无法使用一个查询从多个表中获取结果。
我需要手动获取B和C吗?
是的,虽然您做可以选择让ORMLite在单独的查询中执行此操作。使用foreignAutoRefresh = true
时,ORMLite将执行辅助查询,以便在您获得instanceB
时自动刷新A
字段。如果您向eager = true
外部集合添加lotsOfCs
,那么该查询也会在创建A
之前关闭。