Je possède ce code:Comment puis-je couper une transaction au printemps avec JPA?
run big query: Select all unprocessed objects from table A
for each result
create or update an output object in table B
update input object: Set it to "processed"
Je voudrais avoir une transaction sur le corps de la boucle, qui est au bout d'une rangée d'entrée est traitée, les objets mis à jour devraient être engagés, alors quand le programme avorte, il ne traitera plus toutes les lignes mais commencera par la ligne défectueuse. J'utilise Spring 2.5, Hibernate 3.4 et JPA (c'est-à-dire que j'ai un EntityManager
).
Comment faire cela? J'ai essayé d'appeler em.getTransaction().commit()
dans la boucle mais Spring ne le permettra pas.