我有表 A、B、C、D、E,我正在对它们进行内部连接。
我只需要结果中的部分数据。例如,我需要A.name
列,D.phoneNumber
列。
我正在使用方法join()
。
我应该如何处理结果?我应该通过所有课程来获取我需要的所有数据吗?如果是,那么有什么简单的方法可以做到这一点,因为完成所有这些似乎有点复杂。
我应该为结果创建一个类并以某种方式将结果映射到它吗?
根据 ORMlite 文档,您只能对通过外部对象字段连接的表使用 join 语句。
所以我看到的第一种方法是使用外部对象并检索您需要的所有值。例如,如果您查询表 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 语句。