У меня есть этот код:
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"
Я хотел бы иметь транзакцию по телу цикла, то есть после обработки одной строки ввода обновленные объекты должны быть зафиксированы, поэтому, когда программа прерывает работу, она не будет снова обрабатывать все строки, а начинать с ошибочный ряд.
Я использую Spring 2.5, Hibernate 3.4 и JPA (т.е. у меня есть EntityManager
).
Как мне это сделать? Я пытался вызвать em.getTransaction().commit()
в цикле, но Spring не допустит этого.