У меня есть весеннее загрузочное приложение с весенней загрузкой версии 2.1.6. Я использую спящий режим JPA для транзакций БД.
В моем тасклете есть что-то вроде
List<Documents> documents = documentReposirory.findAll();
for(Documents doc : documents){
//do something with doc
documentReposirory.updateDocument(doc);
}
//business logic
RepeatStatus.FINISHED
Я обновляю таблицу Document в цикле for. Но транзакция совершается только после того, как элемент управления покидает тасклет.
Мой вопрос:
1) Можно ли вручную зафиксировать транзакцию сразу после вызова update ()?
2) Если я обновляюсьобъект Documents, даже если я не вызываю операцию обновления, система автоматически обновляет базу данных после того, как элемент управления покинет тасклет. Почему это так? Как мы можем предотвратить это?
Мой класс репозитория похож на
public interface DocumentsRepository extends JpaRepository<Documents, Long> {
@Query("update .....")
public void updateDocument();
}