@Transactional(propagation=Propagation.REQUIRED)
и @Transactional(rollbackFor = Exception.class)
примерно одинаковы.Поскольку propagation=Propagation.REQUIRED
равно , по умолчанию .Таким образом, с учетом этого они эквивалентны @Transactional(propagation=Propagation.REQUIRED)
и @Transactional(propagation=Propagation.REQUIRED, rollbackFor = Exception.class)
.
Единственное отличие состоит в том, что без rollbackFor = Exception.class
он будет выполнять откат только для RuntimeException
с и Error
с не для другихисключения, которые происходят.(Это то же самое для JEE при использовании EJB, и поведение также было переведено в Spring).
Это также объясняется в javadoc @Transactional
.