Hello,
I have the following method (notice the comments //todo: transaction starts here, etc.):
Code:public int traiterMailing(/*List<Sculpture> sculpturesChoisiesPourMailing*/) {//todo: gerer le cas oł zero sculptures et gerer le cas oł une adresse email est invalide. log.debug("traiterMailing"); List<Sculpture> sculpturesChoisiesPourMailing = dao.findMailingNonTraitees();//todo: temp? List<Abonne> totaliteAbonnes = dao.findAllAbonnes(); int compteursMailsEnvoyes = 0; if (sculpturesChoisiesPourMailing.isEmpty()) { return compteursMailsEnvoyes;//todo: threadsafe!! } else { for (Abonne abonne : totaliteAbonnes) { //todo: transaction starts here for (Sculpture sculpture : sculpturesChoisiesPourMailing) { MailingAbonnePK mapk = new MailingAbonnePK(sculpture.getSculptureID(), abonne.getAbonneID()); MailingAbonne ma = new MailingAbonne(mapk, new Date()); dao.persistMailingAbonnee(ma); } this.mailAbonne(sculpturesChoisiesPourMailing, abonne); compteursMailsEnvoyes++; //todo: transaction ends here } List<Integer> sculpturesChoisiesPourMailingIDs = new ArrayList<Integer>(); for (Sculpture sculpture : sculpturesChoisiesPourMailing) { sculpturesChoisiesPourMailingIDs.add(sculpture.getSculptureID()); } dao.updateSculptureChoisiesPourMailing(sculpturesChoisiesPourMailingIDs); return compteursMailsEnvoyes; } }
I wish to use the equivalent of tx.begin() and tx.commit() respectively at //transaction starts here and //transaction ends here.
Can anyone advise which Spring class to use or whether I should refactor my method and if so how?
Thanks in advance,
J.


Reply With Quote
