Собственно вопрос - почему транзакция, которая не завершена(commit), способна менять данные в кеше, а не создавать копию обьекта или хотя бы копию измененной части.
Вот у нас есть ситуация как на скрине:
1) Почему нельзя проверить действия на целостность и корректность, а потом после утверждения(commit) изменить данные? Создать локальную А, записать в нее, после утверждения, записать в ту, что в кеше, тем самым исчезнет, проблема "грязных данных".
2) Каким образом, после всех действий даже после перезаписи А, мы получили rollback?(как я понимаю, если А перезаписано, то бд как бы фактически проверила на целостность и тп.)
3) Расскажите, кто отдает конечное "зафиксировать\откатить"?
Ну или укажите на ошибки, может я чего-то не догнал...