Please enable JavaScript.
Coggle requires JavaScript to display documents.
SPRING BOOT - Coggle Diagram
SPRING BOOT
Required
-
Если есть транзакция, то используется именно она, если нет, то создается новая
-
Requires_New
Если есть транзакция, то она останавливается и создается новая
Если нет, то создается новая
-
Never
Если есть транзакция в момент исполнения, то будет исключение
-
Mandatory
Если в момент исполнения нет транзакции, то будет исключение
-
Not_Supported
Если нет транзакции, то новая не будет создана.
Если есть транзакция, то она приостанавливается
Supports
Если есть транзакция в момент исполнения, то используется она
Если нет транзакции в момент исполнения, то выполнение будет без транзакции
Nested
Если есть транзакция в момент исполнения, то создается ветка этой транзакции, которая может быть закомичена или откачена
Использует savePoint для того, чтобы отметить место старта
-
-
Блокировки
optimistic lock
-
Для использования необходим атрибут Version, который может быть повешен на -Integer, -integer, -Long, -long, -Short, -short, -Timestamp
Когда происходит обновление, Spring увеличивает значение Version
Если другая транзакция, обновляет сущность, используя устаревшее значение Version, будет OptimisticLockException
Конфликты происходят редко - Пусть происходят, проще разобраться с последствиями
pessimistic lock
-
Достигается блокировкой на уровне БД, то есть другая транзакция не может работать с данными, пока первая транзакция их не оставит
Lock вешается на метод репозитория
Типы
PESSIMISTIC_WRITE
Другие трнзации не могут ни читать, не изменять данные до завершения транзакции, данные не могут использоваться до конца транзакции
PESSIMISTIC_READ
Другие транзакции могут читать, но не могут блокировать данные, пока трназакция не завершится. Гарантия целостности до окончания транзакции
-