トランザクション
トランザクションをサポートした DBMS であれば、デフォルトでトランザクションが機能します。アプリを起動すれば、もうすでに機能しているのです。
フレームワークは、アクションが呼び出される直前にトランザクションを開始し、呼び出された後にトランザクションをコミットします。
もし何らかの異常が発生しトランザクションをロールバックしたい場合は、例外をスローするか、コントローラの中で rollbackTransaction メソッドを呼んでください。アクションから抜けたあとで、ロールバックが実行されます。
// in an action
:
if (...) {
rollbackTransaction();
:
}
敢えてトランザクションそのものを作動させたくなければ、コントローラの transactionEnabled() メソッドをオーバライドして false を返します。
bool FooController::transactionEnabled() const
{
return false;
}
この例のようにコントローラ毎にも設定できますし、全く使用しなければ ApplicationController でオーバライドすることができます。
bool ApplicationController::transactionEnabled() const
{
return false;
}