Sobes.tech
Назад к вопросам
Junior — Middle
69

Какое влияние оказывает использование аннотации @Transactional в рамках Spring-приложения?

Компании, где спрашивали
Альфа-БанкАльфа-Банк

Ответ от нейросети

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);
        // Если здесь возникнет исключение, оба сохранения откатятся
    }
}