Встречается на собеседованиях • сегодня

В чем разница между @Transactional сервисами и обычными сервисами

@Transactional добавляет управление транзакциями к методам сервиса. Основные отличия:

  1. Автоматическое управление транзакциями – Spring открывает/закрывает транзакции, обрабатывает commit/rollback.
  2. Изоляция и распространение – можно настраивать через параметры аннотации (@Transactional(isolation=READ_COMMITTED, propagation=REQUIRED)).
  3. Rollback – автоматический при unchecked исключениях (можно настроить под свои нужды).

Пример:

java
@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        // Будет выполняться в транзакции
        userRepository.save(user);
        auditService.logCreation(user); // Если здесь исключение - откатится save()
    }
}

Обычные сервисы просто выполняют бизнес-логику без управления транзакциями. Для работы с БД в них нужно вручную управлять соединениями или использовать TransactionTemplate.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы