デスクトップアプリケーションでormlite4.42とsqliteを使用して遅延ForeignCollectionを永続化しようとしています。
のコレクションを保持するEvent
クラスがありますEventDate
:
@DatabaseTable(tableName = "event")
public class Event extends BaseDaoEnabled<Event, Integer> implements Scrap {
@DatabaseField(generatedId = true, columnName = "_id")
private int id;
@ForeignCollectionField(eager = true)
private ForeignCollection<EventDate> dates;
}
EventDate
クラスは:
@DatabaseTable(tableName = "eventdate")
public class EventDate extends BaseDaoEnabled<EventDate, Integer> {
@DatabaseField(generatedId = true, columnName = "_id")
int id;
@DatabaseField(canBeNull = true, foreign = true)
Event event;
}
EventDates
そして、これが私がそれらを追加して永続化するために使用するコードです:
Event e2 = eventDao.queryForId(id));
e2.getDates().clear();
for (final EventDate date : dates) {
e2.getDates().add(date);
e2.getDates().update(date);
}
e2.update();
はEvenDates
sqliteテーブルに正しく追加されていますが、フィールドevent_id
はnullです:はにEventDates
リンクされていませんEvent
。
エラーメッセージはありません。私は何を間違っているのですか?
注:熱心なコレクション(追加e2.getDates().updateAll()
)を試してみましたが、どちらも機能しません。