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
}