Java
18.07 · ред.
@Transactional - propagation (Области применения)
В системах транзакции являются гарантом целостности данных. Они обеспечивают согласованность и надежность наших операций. Что соответствует принципам ACID. Чтобы воспользоваться этой возможностью в Spring, мы используем аннотацию @Transactional.
``` @Transactional(propagation = Propagation.NESTED)
public void processTransaction() { // code to process a transaction } ```
Область применения — опция propagation REQUIRED - Настройка по умолчанию. Если существует существующая транзакция, она присоединяется к ней. Если нет, создается новая. Это полезно для большинства стандартных операций.
REQUIRES_NEW - Всегда создает новую транзакцию, приостанавливая действие существующей. Это полезно для операций, которые должны быть независимы от текущей транзакции, таких как ведение журнала — записи в журнал должны записываться даже в случае сбоя основной транзакции или ее отката.
NESTED - Создает вложенную транзакцию. Это полезно для дополнительных транзакций, которые должны откатываться независимо от основной транзакции.
MANDATORY - Генерирует исключение, если существующая транзакция отсутствует. Это полезно для методов, которые должны выполняться в рамках существующей транзакции.
NEVER - Генерирует исключение, если транзакция существует. Это полезно для методов, которые не должны выполняться в рамках транзакции.
SUPPORTS - Участвует в транзакции, если она существует, в противном случае выполняется нетранзакционно. Это полезно для методов, которые могут работать как с транзакцией, так и без нее.
NOT_SUPPORTED - Выполняется без участия транзакций, приостанавливая любую существующую транзакцию. Это полезно для методов, которые не должны выполняться в рамках транзакции.
#java #programming #transactional #propagation #spring #jpaеще контент в этом сообществе
еще контент в этом соообществе
Java
18.07 · ред.
войдите, чтобы увидеть
и подписаться на интересных профи