我在一个android应用程序中尝试了usign OrmLite,遇到了一个问题:
我在一个对象上创建了一个外部集合,并为其分配了一些对象。我可以使用 DAO 上的 queryForAll() 方法来查询对象,并按预期返回它们:
allTeams = getHelper().getTeamDao().queryForAll();
for(ScrumTeam team : allTeams) {
if(team.getMembers() == null || team.getMembers().size() == 0) {
log("No Members");
} else {
log(team.getMembers().size()+" Members");
}
}
这按预期工作,在团队上打印“2 个成员”或“3 个成员”,代表正确的数据。
显然,我想对数据进行排序,我发现的方法是使用 queryBuilder:
allTeams = getHelper().getTeamDao().queryBuilder().selectColumns("id", "name").orderBy("name", true).query();
for(ScrumTeam team : allTeams) {
if(team.getMembers() == null || team.getMembers().size() == 0) {
log("No Members");
} else {
log(team.getMembers().size()+" Members");
}
}
上面的代码输出“No members”,但我可以完美地访问团队的其他数据(id 和 name)。我尝试在集合上设置渴望真假,但都没有奏效。进一步调查,我发现成员数组未初始化(空)。这是一个错误,还是我错误地使用了库?有没有办法手动获取 ForeigCollection?
感谢您的回复!