2013-01-25 56 views
1

我試圖在桌面應用程序上使用ormlite 4.42和sqlite來保留一個懶惰的​​。如何使用ormlite 4.42來保存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(); 

在sqlite表中正確添加EvenDates,但字段event_id爲空:EventDates未鏈接到Event

我沒有錯誤信息。 我在做什麼錯?

注:我嘗試了渴望收集(加入e2.getDates().updateAll()),但它也不起作用。

+0

您是否爲要更新的對象設置了Dao ? – stephen

回答

1

也許這裏有一個缺失的功能。現在,你需要將它們添加到收藏日期之前,由於手的日期,將事件指派:

e2.getDates().clear(); 
for (final EventDate date : dates) { 
    // this is necessary unfortunately 
    date.setEvent(e2); 
    e2.getDates().add(date); 
} 

我已經添加了以下票審覈:

https://sourceforge.net/p/ormlite/feature-requests/31/

+1

根據請求,該功能現在在ormlite中實現4.43 –

相關問題