diff options
Diffstat (limited to 'acf2/transaction/init.lua')
-rw-r--r-- | acf2/transaction/init.lua | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/acf2/transaction/init.lua b/acf2/transaction/init.lua index 482c00e..943e337 100644 --- a/acf2/transaction/init.lua +++ b/acf2/transaction/init.lua @@ -113,7 +113,14 @@ end local store = require('acf2.persistence') - -return function(txn, defer_validation) - return ModelTransaction(txn or store, not (txn and defer_validation)) +local def_store = require('acf2.persistence.defer') + +return function(options) + options = options or {} + return ModelTransaction( + options.parent or ( + options.allow_commit_defer and def_store or store + ), + not (txn and options.defer_validation) + ) end |