Sobes.tech
Junior — Middle
94

Spring қосымшасында @Transactional аннотациясын қолданудың әсері қандай?

Сұралған компаниялар
Альфа-БанкАльфа-Банк

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