Идеальное поведение транзакции - это именно то, что было упомянуто вами. Транзакции будут совершаться только в конце метода, а не в каждой записи. В любой точке итерации, если мы получим исключение, вся транзакция будет откатиться без сохранения каких-либо данных.
Если вы чувствуете, что такого поведения не происходит, то я полагаю, что вы вызываете метод @Transactional
с тем же компонентом. @Transactional
работает только с методами, вызванными для прокси, созданных Spring. Это означает, что когда вы создаете @Service
или другой компонент, метод, вызываемый извне, будет транзакционным. Если он вызывается из bean-компонента, ничего не произойдет, поскольку он не проходит через прокси-объект.
Я не уверен, в чем конкретно заключается ваша проблема, если вы чувствуете, что транзакция никогда не происходит, то выше может быть причиной Надеюсь, это поможет вам