q.get()
возвращает только первый результат, поэтому в этом коде обновляется только одна сущность (или нет).
Смысл транзакции заключается в том, что все изменения в хранилище данных происходят "одновременно". Я не могу вспомнить ни одной ситуации, в которой я бы хотел бы многократных изменений в транзакции иметь заказ - наличие заказа подразумевает, что что-то видит состояние модели данных, в которой транзакция только частично завершена и цель транзакций - избежать этого.
Даже в рамках транзакции изменения не происходят последовательно, все они происходят вместе в конце. Если вы put()
сущность, а затем get()
ее внутри транзакции, то вы не увидите никаких изменений, только состояние хранилища данных до транзакции.