Changes between Version 4 and Version 5 of Transactions
- Timestamp:
- 09/04/25 05:11:41 (42 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Transactions
v4 v5 96 96 }}} 97 97 98 Методот * checkout* е транзакциски метод за атомско креирање/поврзување на плаќањето, нарачката, и корекциите на залихи, кој врши промена на состојва на 4 различни ентитета. Кодот пресметува цена според опционален попуст (со клуб-картичка), отвора плаѓање „во тек“, ја гради нарачката за секој брендиран лек од кошничката, ги намалува залихите по објектите и на крај го финализира плаќањето и ја празни кошничката.98 Методот **checkout** е транзакциски метод за атомско креирање/поврзување на плаќањето, нарачката, и корекциите на залихи, кој врши промена на состојва на 4 различни ентитета. Кодот пресметува цена според опционален попуст (со клуб-картичка), отвора плаѓање „во тек“, ја гради нарачката за секој брендиран лек од кошничката, ги намалува залихите по објектите и на крај го финализира плаќањето и ја празни кошничката. 99 99 100 100 Транзакција обезбедува да нема ситуација во која залихата е намалена без валидна нарачка или плаќање, бидејќи секој неуспех фрла исклучок што иницира ROLLBACK. 101 101 102 * rollbackFor = Exception.classосигурува Rollback на проверени исклучоци, не само на runtime, за да нема полузавршени нарачки или плаќања.103 * isolation = READ_COMMITED- забранува dirty reads за време на паралелни операции, ова е важно при намалување на залихата од брендирани лекови.104 * timeout = 30- прекинува долги транзакции за да спречи предолко или бесконечно извршеување на методот кој можеби има грешка.102 * **rollbackFor = Exception.class** - осигурува Rollback на проверени исклучоци, не само на runtime, за да нема полузавршени нарачки или плаќања. 103 * **isolation = READ_COMMITED** - забранува dirty reads за време на паралелни операции, ова е важно при намалување на залихата од брендирани лекови. 104 * **timeout = 30** - прекинува долги транзакции за да спречи предолко или бесконечно извршеување на методот кој можеби има грешка. 105 105 106 106 По успех на транзакцијата, се прави COMMIT по што промените остануваат трајни. … … 227 227 }}} 228 228 229 Методот * saveAll* се користи за зачувуање/ажурирање на брендиран лек, и сликите кои се поврзани со дадениот лек.229 Методот **saveAll** се користи за зачувуање/ажурирање на брендиран лек, и сликите кои се поврзани со дадениот лек. 230 230 Во методот се вчитува или креира ентитетот, се верифицира производителот, се зачувуваат нови или се бришат постоечки слики, и се избира една главна слика. Ако настане грешка, 231 * ROLLBACKправилото ќе ја поништи целата работа во рамките на транзакцијата.232 * isolation = READ_COMMITTEDзабранува dirty reads, ова е важно кога се менуваат повеќе поврзани табели.233 * Тimeoutе 30 секунди за транзакцијата да не троши ресурси предолго време.231 * **ROLLBACK** правилото ќе ја поништи целата работа во рамките на транзакцијата. 232 * **isolation = READ_COMMITTED** забранува dirty reads, ова е важно кога се менуваат повеќе поврзани табели. 233 * **Тimeout** е 30 секунди за транзакцијата да не троши ресурси предолго време. 234 234 235 235 Методот е транзакциски за цел да се избегне ситуација каде се креираат слики без постоечки лек. Сите ентитети во транзакцијата се третираат како една атомска целина. … … 255 255 }}} 256 256 257 Методот * approve* е транзакциски за атомско одобрување на барањето и верификација на клиентот, со правило за Rollback, изолација READ_COMMITED и ограничување на извршување 10 секунди. Методот е транзакциски за да се обезбеди конзистентост меѓу статусот на апликацијата и ознаката за верификација на клиентот. Ако се изврши само одобрување на апликацијата, тогаш клиентот би останал неверифициран.257 Методот **approve** е транзакциски за атомско одобрување на барањето и верификација на клиентот, со правило за **Rollback**, **изолација READ_COMMITED** и **ограничување на извршување 10 секунди**. Методот е транзакциски за да се обезбеди конзистентост меѓу статусот на апликацијата и ознаката за верификација на клиентот. Ако се изврши само одобрување на апликацијата, тогаш клиентот би останал неверифициран.