Junior — Middle
Транзакцияларды башкарууда таратуу деңгээлдери деген эмне экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Транзакцияларды башкарууда жайылуу деңгээлдери транзакция кандай жүрүшү керектигин аныктайт, ал өздөрү да транзакциялык болушу мүмкүн болгон методдорду чакырганда. Бул метод мурдагы транзакцияны колдонобу, жаңы түзөбү же транзакциясыз иштейбү, түшүнүү үчүн маанилүү.
Spring (Java) ичиндеги негизги жайылуу деңгээлдери:
- REQUIRED (өзүнчө): эгер учурдагы транзакция бар болсо, метод ага кошулат, болбосо жаңы түзүлөт.
- REQUIRES_NEW: ар дайым жаңы транзакция түзөт, учурдагы (эгер бар болсо) токтотулат.
- SUPPORTS: эгер транзакция бар болсо, метод анын ичинде иштейт, болбосо транзакциясыз.
- NOT_SUPPORTED: метод ар дайым транзакциясыз иштейт, учурдагы транзакция токтотулат.
- MANDATORY: метод учурдагы транзакцияда иштеши керек, эгер жок болсо, ката чыгат.
- NEVER: метод транзакцияда иштебеши керек, эгер болсо, ката чыгат.
- NESTED: эгер транзакция бар болсо, ички (savepoint) транзакция түзүлөт, болбосо жаңы түзүлөт.
Мисал:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveData() {
// бул метод ар дайым жаңы транзакцияда
}