ORMLite de nombreux de nombreux de la relation Android
J'ai deux classes :
UniteStratigraphique.java :
@DatabaseTable(tableName = "unitestratigraphique")
public class UniteStratigraphique {
public final static String ID_FIELD_NAME = "id";
@DatabaseField(generatedId = true, columnName = ID_FIELD_NAME)
private int id;
//CAMPAGNES
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private Campagne campagne;
@ForeignCollectionField
private ForeignCollection<Campagne> listeCampagnes;
public UniteStratigraphique() {}
public Campagne getCampagne() {
return campagne;
}
public void setCampagne(Campagne campagne) {
this.campagne = campagne;
}
public ArrayList<Campagne> getListeCampagnes() {
ArrayList<Campagne> campagnesArray = new ArrayList<Campagne>();
for (Campagne campagne : listeCampagnes) {
campagnesArray.add(campagne);
}
return campagnesArray;
}
public ForeignCollection<Campagne> getListeCampagnesForeign() {
return listeCampagnes;
}
public void setListeCampagnes(ForeignCollection<Campagne> listeCampagnes) {
this.listeCampagnes = listeCampagnes;
}
}
Campagne.java :
@DatabaseTable(tableName = "campagne")
public class Campagne {
@DatabaseField(generatedId = true)
private int id;
//UNITE STRATIGRAPHIQUE
@ForeignCollectionField
private ForeignCollection<UniteStratigraphique> listeUniteStratigraphique;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private UniteStratigraphique uniteStratigraphique;
public Campagne() {}
public ArrayList<UniteStratigraphique> getListeUniteStratigraphique() {
ArrayList<UniteStratigraphique> usArray = new ArrayList<UniteStratigraphique>();
for (UniteStratigraphique us : listeUniteStratigraphique){
usArray.add(us);
}
return usArray;
}
public ForeignCollection<UniteStratigraphique> getListeUniteStratigraphiqueForeign() {
return listeUniteStratigraphique;
}
public void setListeUniteStratigraphique(
ForeignCollection<UniteStratigraphique> listeUniteStratigraphique) {
this.listeUniteStratigraphique = listeUniteStratigraphique;
}
public int getSizeListeUniteStratigraphique() {
return listeUniteStratigraphique.size();
}
public UniteStratigraphique getUniteStratigraphique() {
return uniteStratigraphique;
}
public void setUniteStratigraphique(UniteStratigraphique uniteStratigraphique) {
this.uniteStratigraphique = uniteStratigraphique;
}
}
Comme vous pouvez le voir, ce sont plusieurs-À-Plusieurs lié (0...n---0...n, avec ORMLite annotations).
Maintenant, mon travail est :
- Je créer plusieurs "UniteStratigraphique des classes" et je les stocker dans ma base de données (ce qui fonctionne très bien).
=> j'ai Donc n * "UniteStratigraphique" stockées.
Après que ce que je veux, c'est créer une "Campagne" de la classe qui va contenir plusieurs "UniteStratigraphique" des classes.
=> je veux Donc de définir ce champ d' "Campagne.java" :
@ForeignCollectionField
private ForeignCollection<UniteStratigraphique> listeUniteStratigraphique;
avec le n * "UniteStratigraphique" les éléments que je viens stockées avant d'.
J'ai essayé de le faire avec cette méthode DAO mais c'est seulement à reproduire le "UniteStratigraphique" classes dans ma db et aucun lien n'est fait..
public void addUsToCampagne(Campagne campagne,
ArrayList<UniteStratigraphique> usArray) {
ForeignCollection<UniteStratigraphique> usForeign = campagne
.getListeUniteStratigraphiqueForeign();
if (usForeign == null) {
try {
usForeign = getHelper().getCampagneDao()
.getEmptyForeignCollection("listeUniteStratigraphique");
for (UniteStratigraphique us : usArray) {
usForeign.add(us);
}
} catch (SQLException e) {
e.printStackTrace();
}
}else{
for (UniteStratigraphique us : usArray) {
usForeign.add(us);
}
}
}
Et dans mon Activité, je suis en train de faire ceci :
db.addCampagne(campagne);
if( myUniteStratigraphiqueArray.size() > 0){
db.addUsToCampagne(campagne, myUniteStratigraphiqueArray);
}
OriginalL'auteur eento | 2013-08-19
Vous devez vous connecter pour publier un commentaire.
De nombreux de Nombreux les relations sont non automatique avec ORMLite, la seule façon d'y parvenir est de faire une 3ème Table seulement pour le lien entre ces 2 classes..
Ce lien renvoie à ce problème : Quelle est la meilleure façon de mettre en œuvre plusieurs-à-plusieurs relations en utilisant ORMLite?
Et l'exemple ici : https://github.com/j256/ormlite-jdbc/tree/master/src/test/java/com/j256/ormlite/examples/manytomany
Espère que cela a aidé.
OriginalL'auteur eento