J'essaie de conserver deux types d'objets. Famille et sous-famille. Une famille a une ou plusieurs sous-familles.ORMLite ne crée pas la référence étrangère
Le problème que j'ai est que je peux stocker des données, MAIS référence étrangère est toujours NULL.
Ce sont les classes qui créent la structure de base de données correcte:
Family.java
@DatabaseTable
public class Family {
@DatabaseField(id = true)
private Integer id;
@DatabaseField
private String name;
@ForeignCollectionField(eager = true)
private ForeignCollection<Subfamily> subfamilies;
public Family() {}
// public getters and setters
}
Subfamily.java
@DatabaseTable
public class Subfamily {
@DatabaseField(id = true)
private Integer id;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private Family family;
@DatabaseField
private String name;
public Subfamily() {}
public Subfamily(String name, Family family) {
this.name = name;
this.family = family;
}
// public getters and setters
}
Je suis séparé taos, pour la famille d'insertion et Sous-famille
public void insertFamily(Family family) {
try {
this.familyDao.create(family);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertSubfamily(Subfamily subfamily) {
try {
this.subfamilyDao.create(subfamily);
} catch (SQLException e) {
e.printStackTrace();
}
}
Ensuite, quand je crée une famille et une sous-famille comme celle-ci, le champ étranger semble toujours NULL. Je ne sais pas ce que je fais mal ..
Family f1 = new Family("FAMILY ONE");
mFamilyDao.insertFamily(f1);
Subfamily s1 = new Subfamily("SUBFAMILY OF FAMILY ONE", f1);
mSubfamilyDao.insertSubfamily(s1);
Super !! le problème a été résolu avec * generatedId = true *. Merci également pour tous les conseils et conseils que vous m'avez donnés. – adalPaRi