我正在尝试在桌面应用程序中使用ormlite 4.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();
{1}}已在sqlite表中正确添加,但字段EvenDates
为空:event_id
未与EventDates
相关联。
我没有错误消息。 我做错了什么?
注意:我尝试过eager collection(添加Event
),但它也不起作用。
答案 0 :(得分:1)
这里可能缺少一个功能。现在,您需要手动分配日期事件,然后再将它们添加到日期集合中:
e2.getDates().clear();
for (final EventDate date : dates) {
// this is necessary unfortunately
date.setEvent(e2);
e2.getDates().add(date);
}
我已添加以下故障单以供审核: