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

Что нужно сделать, для того чтобы заработала аннотация @Transactional

Для работы аннотации @Transactional необходимо:

  1. Добавить зависимость Spring Transaction (если не Spring Boot)
  2. Включить управление транзакциями через @EnableTransactionManagement в конфигурации
  3. Использовать Spring Data JPA или другой транзакционный datasource
  4. Аннотировать метод или класс (public методы будут транзакционными)

Пример:

java
@Configuration
@EnableTransactionManagement
public class AppConfig {
    // DataSource, EntityManagerFactory etc.
}

@Service
public class UserService {
    @Transactional
    public void updateUser(User user) {
        // Будет выполняться в транзакции
    }
}

Важно:

  • Метод должен быть public (иначе проксирование не сработает)
  • Вызов из того же класса не будет транзакционным (проблема self-invocation)
  • По умолчанию транзакция создается при входе в метод и коммитится при успешном завершении
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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