Back

with-transaction (clj)

(source)

macro

(with-transaction [sym transactable opts] & body)
Given a transactable object, gets a connection and binds it to `sym`, then executes the `body` in that context, committing any changes if the body completes successfully, otherwise rolling back any changes made. Like `with-open`, if `with-transaction` creates a new `Connection` object, it will automatically close it for you. If you are working with default options via `with-options`, you might want to use `with-transaction+options` instead. The options map supports: * `:isolation` -- `:none`, `:read-committed`, `:read-uncommitted`, `:repeatable-read`, `:serializable`, * `:read-only` -- `true` / `false` (`true` will make the `Connection` readonly), * `:rollback-only` -- `true` / `false` (`true` will make the transaction rollback, even if it would otherwise succeed).

Examples