Junior — Middle
82
Spring-де @Transactional аннотациясымен белгіленген әдісті Propagation.NEVER параметрімен шақырғанда қандай салдарлар болады?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Spring-те @Transactional аннотациясымен propagation = Propagation.NEVER параметрімен әдісті шақырсаңыз, Spring ағымдағы орындау ағынында белсенді транзакцияның жоқтығын тексереді. Егер транзакция бұрыннан бар болса, IllegalTransactionStateException қателігі шығарылады.
Бұл дегеніміз, Propagation.NEVER бар әдіс транзакция шеңберінде орындалуға тыйым салған. Мұндай тәсіл әдіс транзакциялық контексттен тыс орындалуы керек болғанда пайдаланылады, мысалы, транзакцияға кірмейтін операциялар немесе транзакцияларды қолдамайтын сыртқы қызметтерді шақыру үшін.
Мысал:
@Transactional(propagation = Propagation.NEVER)
public void nonTransactionalMethod() {
// транзакция ішінде орындалмауы тиіс код
}
Егер бұл әдісті транзакция ішінде болған басқа әдістен шақырсаңыз, қате пайда болады.