final int NB_ARTICLE = 10;
final int CATLAOGUE_SIZE = 2;
final int MARCHE_SIZE = 2;
PersistenceManager pm = pmf.getPersistenceManager();
pm.currentTransaction().begin();
Catalogue cat = null;
int nbCat = 0;
Marche mar= null;
int nbMar = 0;
Article a;
for(int idArt=0; idArt<NB_ARTICLE; idArt++) {
if ((idArt / CATLAOGUE_SIZE) == nbCat) {
cat = new Catalogue();
pm.makePersistent(cat);
nbCat ++;
}
if ((idArt / MARCHE_SIZE) == nbMar) {
mar = new Marche();
pm.makePersistent(mar);
nbMar ++;
}
if ((idArt % 2) == 0) { //pair
a = new Service(idArt);
} else { //impair
a = new Materiel(idArt);
}
pm.makePersistent(a);
a.setCatalogue(cat);
mar.getArticles().add(a);
}
pm.currentTransaction().commit();
a = null;
cat = null;
mar = null;
pm.evictAll();
Article a2 = null;
Extent extent = pm.getExtent(Catalogue.class, true);
Iterator it = extent.iterator();
while(it.hasNext()) {
cat = (Catalogue) it.next();
logger.log(BasicLevel.DEBUG, "Catalogue " + cat.getId());
Collection arts = cat.getArticles();
Iterator articles = arts.iterator();
while(articles.hasNext()) {
a2 = a;
a = (Article) articles.next();
logger.log(BasicLevel.DEBUG, "\tArticle " + a.getId());