Использование внедрения зависимостей значительно упростит это.Использование @Transactional
или аналогичных аннотаций для методов, в которых вы хотите зафиксировать / откатить транзакции.
Если вам нужно сделать это вручную, у вас есть в основном два варианта:вручную для каждой операции
используйте
шаблон прокси /
шаблон декоратора и прокси / украсьте все ваши классы, которые требуют транзакций.Затем в прокси / декораторе запустите транзакцию, делегируйте ее цели и подтвердите после ее возврата.(это то, как это делают DI-фреймворки)