Разбор с помощью jackson и вставка того же объекта в sqlite с помощью ormlite android

Я анализирую данные json, используя Jackson из вызова API, и пытаюсь вставить данные в sqlite, используя ormlite. Для этого я использую тот же класс модели. Вот мои модельные классы

public class Site {

@DatabaseField(generatedId=true,columnName="ID")
private int id;
@DatabaseField(columnName="NAME")
private String name;
@ForeignCollectionField(eager=true)
Collection<Visit> visits;
Site() {

}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
@JsonProperty("name")
public void setName(String name) {
    this.name = name;
}
public Collection<Visit> getVisits() {
    return visits;
}
@JsonProperty("visits")
public void setVisits(Collection<Visit> visits) {
    this.visits = visits;
}



}

Вот посетите модельный класс

@DatabaseTable(tableName = "VISIT")
public class Visit {

@DatabaseField(generatedId=true,columnName="ID")
private int id;
@DatabaseField(columnName="VISIT_DATE")
private Date visitDate;

@ForeignCollectionField(eager=false)
Collection<CheckListItem> checklistItems;
@DatabaseField(foreign=true,foreignAutoRefresh=true,columnName="FOREIGN_ID")
private Site site;

Visit(){}

public Site getSite() {
    return site;
}
public void setSite(Site site) {
    this.site = site;
}


public Date getVisitDate() {
    return visitDate;
}
@JsonProperty("date")
public void setVisitDate(Date visitDate) {
    this.visitDate = visitDate;
}

public Collection<CheckListItem> getChecklistItems() {
    return checklistItems;
}
@JsonProperty("checklist_items")
public void setChecklistItems(Collection<CheckListItem> checklistItems) {
    this.checklistItems = checklistItems;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}


}

Я могу проанализировать данные json для списка объектов сайта, выполнив следующие действия:

Список siteList = objectMapper.readValue(jp, new TypeReference>(){});

И это сработало отлично. Теперь я хочу сохранить все эти данные (список объектов сайта) в БД с помощью ormlite (с нетерпеливой иностранной коллекцией). Для этого я пытаюсь так:

for each site in siteList

Collection<Visit> vTemp=site.getVisits();
Dao<Site, Integer> siteListDao=getHelper().getSiteListDao();
s.visits=siteListDao.getEmptyForeignCollection("visits");
siteListDao.create(site);
for(Visit v:vTemp)
s.contacts.add(v);

Вставка данных в таблицу SITE и VISIT. НО, когда я пытаюсь получить данные с помощью функции queryForAll() в таблице SITE, она возвращает объект ForeignCollection (site.getVisits()), но его размер равен 0, хотя я установил нетерпеливое = true.

Я предполагаю, что я сделал что-то не так с вставкой. Скажите, пожалуйста, как правильно выполнить эту вставку, используя тот же объект класса модели.


person rawcoder064    schedule 02.03.2013    source источник
comment
Привет. Вы нашли ответ на это? У меня та же проблема.   -  person Nasir    schedule 29.05.2013
comment
Вверх! \ Тот же вопрос, вы нашли решение?   -  person Ektos974    schedule 16.04.2014