Управление транзакциями в 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