Sobes.tech
Middle+

Эки ыкмада бир класста эки ыкма бар болсо, ар бири @Transactional propagation REQUIRES_NEW менен белгиленсе, жана биринчи ыкмадан экинчисин чакырсак, канча транзакция ачылат?

sobes.tech AI

AIден жооп

@Transactional белги propagation = REQUIRES_NEW менен колдонулганда, ар бир метод өзүнүн өзүнчө транзакциясында иштейт. Биринчи метод чакырылганда, биринчи транзакция ачылат. Биринчи методдон экинчи метод чакырылганда, учурдагы транзакция токтотулат жана экинчи үчүн жаңы транзакция ачылат. Экинчи метод аяктагандан кийин, бул транзакция жабылат жана биринчи кайра улантылат.

Жалпысынан, 2 транзакция ачылат: бири биринчи метод үчүн жана бири экинчи үчүн.

Мисал:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
    // транзакция 1
    methodTwo(); // экинчи методду чакыруу
}

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
    // транзакция 2
}