私は自分のAndroidプロジェクトでormliteを使用しています。私は2つのクラスがあります
@DatabaseTable(tableName = "usershows")
public class UserShow {
@DatabaseField(id = true)
private Integer showId;
@ForeignCollectionField(eager = false)
private ForeignCollection<Episode> episodes;
...
}
@DatabaseTable(tableName = "episodes")
public class Episode {
@DatabaseField(id = true)
private Integer episodeId;
@DatabaseField(foreign = true)
private UserShow show;
...
}
例のようにUserShowsオブジェクトを保存しています
UserShow show = new UserShow();
userShowDao.create(show);
for (Episode e: eps) {
e.setShow(show);
episodeDao.create(e);
}
UserShowオブジェクトには、外部のレイジーコレクションエピソードがありますが、すべてのuserShowを取得しようとすると:
shows = userShowsDao().queryForAll();
エピソードのコレクションを含むすべてのショーオブジェクトを取得しています。なぜこれが起こるのですか?コレクションは怠惰で、nullか何か他のものを取得する必要がありますが、Episodeオブジェクトのコレクションはありません。このコレクションを本当に怠惰にする方法は?ORMLiteに、遅延コレクションなしでオブジェクトを取得し、本当に必要なときに初期化する機能があると便利です。たとえば、Hibernate.initialize
メソッドとして。
ありがとう!