Перейти к содержимому

Управление транзакциями в Spring Boot | @Transactional, Rollback | Серия собеседований по Spring ...

hosiyar

0:00 / 0:00

Управление транзакциями в Spring Boot | @Transactional, Rollback | Серия собеседований по Spring ...

98 просмотров · 3 дня назад
hosiyar
669 подписчиков
98 просмотров · 3 дня назад
В этом видео мы обсудим **управление транзакциями в Spring Boot, Spring Data JPA и Hibernate**. Это видео № 24 из нашей **серии интервью по Spring Boot**. В предыдущем видео мы обсуждали **стратегию выборки и проблемы производительности**, где мы рассмотрели ленивую загрузку, немедленную загрузку, `LazyInitializationException`, проблему запросов N+1, `JOIN FETCH` и `@EntityGraph`. Теперь в этом видео мы разберемся, как Spring безопасно управляет несколькими операциями с базой данных с помощью транзакций. Темы, рассматриваемые в этом видео: 1. Что такое управление транзакциями? 2. Зачем нам нужны транзакции? 3. Что такое `@Transactional`? 4. Где следует использовать `@Transactional`? 5. Как работают commit и rollback? 6. Когда Spring откатывает транзакцию? 7. Откат проверяемых исключений против отката непроверяемых исключений 8. Что такое `rollbackFor`? 9. Что такое `@Transactional(readOnly = true)`? 10. Что такое распространение транзакций? 11. Разница между `REQUIRED` и `REQUIRES_NEW` Транзакция — это группа операций с базой данных, рассматриваемая как единое целое. Она подчиняется простому правилу: Либо все операции выполняются успешно одновременно, либо все операции завершаются с ошибкой одновременно. Например, во время регистрации на курс нам может потребоваться: Сохранить данные о регистрации. Уменьшить количество доступных мест. Создать запись об оплате. Если один из шагов завершается с ошибкой, вся операция должна быть откатена, чтобы сохранить согласованность базы данных. Мы также обсудим, как работает `@Transactional` на уровне сервисов, как Spring фиксирует изменения, когда все успешно, и как происходит откат при возникновении исключения. В этом видео рассматривается важный момент, касающийся подготовки к собеседованию: По умолчанию Spring откатывает транзакции для неконтролируемых исключений, таких как `RuntimeException`, но не для контролируемых исключений. Для отката транзакций для контролируемых исключений можно использовать: `@Transactional(rollbackFor = Exception.class)` Мы также рассмотрим `readOnly = true` для операций чтения и основные типы распространения транзакций, такие как `REQUIRED` и `REQUIRES_NEW`. Эта тема очень важна для собеседований по Java-бэкенду, Spring Boot, JPA, Hibernate и Spring Data JPA. К концу видео вы сможете четко объяснить управление транзакциями, `@Transactional`, commit, rollback, поведение контролируемых и неконтролируемых исключений, транзакции только для чтения и распространение транзакций на собеседовании. Посмотрите полный плейлист серии видеоуроков по Spring Boot:    • Spring Boot Interview Questions   Свяжитесь со мной в LinkedIn:   / deep473   Подпишитесь на **Hosiyar.com**, чтобы получать больше контента по Java, Spring Boot, разработке бэкенда, JPA, Hibernate и подготовке к собеседованиям. #SpringBoot #SpringDataJPA #Hibernate #JPA #JavaInterview #SpringBootInterviewQuestions #HosiyarDotCom