Android アプリケーションで 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");
}
}
上記のコードでは「メンバーなし」と出力されますが、チームの他のデータ(IDと名前)には完全にアクセスできます。コレクションでeagerをtrueとfalseに設定しようとしましたが、どちらも機能しませんでした。さらに調べてみると、メンバー配列が初期化されていない (null) ことがわかりました。これはバグですか、それともライブラリの使い方が間違っていますか? ForeigCollection を手動で取得する方法はありますか?
返信ありがとうございます。