Magma Nested Transactions
Last updated at 9:59 pm UTC on 3 November 2006
refactorMe into Magma
Magma allows you to say:
[ ...make some changes...
mySession commit: [ ...make some other changes... ] ]
The inner-commit actually does nothing; only the outer-commit writes all changes to the db. This is to support the requirement that a bank withdrawal be its own usable operation, a bank deposit be its own usable operation, but also transfer from one account to another (which uses the withdrawal code followed by deposit code) to only be committed wholly. You can just use #commit: in all three methods and it will only consider the outermost commit the one that really commits to the database.