Back to questions
Альфа-Банк
Junior — Middle
68
Какое влияние оказывает использование аннотации @Transactional в рамках Spring-приложения?
Companies where asked
Answer from AI
sobes.tech AI
Аннотация @Transactional в Spring указывает, что метод или класс должен выполняться в рамках транзакции. Это значит, что все операции с базой данных внутри этого метода будут частью одной транзакции, которая либо полностью выполнится (commit), либо полностью откатится (rollback) в случае ошибки.
Основные эффекты использования @Transactional:
- Атомарность: изменения сохраняются только если весь метод прошёл успешно.
- Управление откатом: при возникновении исключений транзакция откатывается.
- Изоляция: можно настроить уровень изоляции транзакции.
- Управление распространением: можно задать, как транзакция ведёт себя при вызове других транзакционных методов.
Пример:
@Service
public class UserService {
@Transactional
public void createUserAndProfile(User user, Profile profile) {
userRepository.save(user);
profileRepository.save(profile);
// Если здесь возникнет исключение, оба сохранения откатятся
}
}