Sobes.tech
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() {
    // ин метод ҳамеша дар транзаксияи нав аст
}