короткий и легкий вопрос на пружинных вложенных транзакциях

Если у меня есть трансдейственные методы A, B, C и вызовы B, C; затем, C выдает исключение, которое не поймано в A.

Мой вопрос состоит в том, если B будет откатываться или нет?

Обратите внимание на то, что вложенные транзакции отключены по умолчанию, таким образом, A, B, C являются все трансдейственными собой.

Спасибо

1
задан skaffman 30 July 2010 в 11:38
поделиться

2 ответа

Обратите внимание, что Spring по умолчанию откатывает транзакции только тогда, когда RuntimeException (или подкласс) выбрасывается за границы транзакции (то есть когда исключение не перехватывается вашим транзакционным методом).

Проверенное исключение НЕ приведет к тому, что Spring пометит транзакцию для отката, если вы не укажете это явно.

2
ответ дан 2 September 2019 в 22:34
поделиться

Да.

Если A, B и C являются методами @Transactional , а A вызывает B и C, Spring будет управлять транзакционным характером всех трех с помощью одной транзакции. Другими словами, вызов A, B и C фактически будет использовать одну транзакцию. Если C выдает исключение, единственная транзакция, используемая A, B и C, будет отменена.

0
ответ дан 2 September 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: