Analyser avec jackson et insérer le même objet en sqlite en utilisant android

Je suis en train d'analyser les données json à l'aide de Jackson depuis l'appel d'api et d'essayer d'insérer les données en sqlite en utilisant ormlite . Pour cela, j'utilise la même classe de modèle. Voici mes cours de modèle

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; } } 

Voici la classe de modèle de visite

 @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; } } 

Je peux analyser les données de json dans la liste des objets du site en suivant:

Liste siteList = objectMapper.readValue (jp, new TypeReference> () {});

Et cela a parfaitement fonctionné. Maintenant, je souhaite stocker toutes ces données (liste des objets du site) dans le db en utilisant ormlite (avec impatient ForeignCollection). Pour cela, j'essaie comme ceci:

 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); 

Il insère les données dans le tableau SITE et VISITE. BUt lorsque j'essaie d'extraire des données par la fonction queryForAll () sur le tableau SITE, il renvoie un objet foreignCollection (site.getVisits ()), mais sa taille est 0, même si j'ai configuré le eager = true.

Je pense que j'ai fait quelque chose de mal à insérer. Veuillez me dire quel est le bon moyen de faire cette insertion en utilisant le même objet de classe de modèle.

coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.