このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
apricot:app:transaction [2020/05/15 16:36] y2sunlight [コントローラベース] |
apricot:app:transaction [2020/05/21 10:41] (現在) y2sunlight [Apricot トランザクション] |
||
|---|---|---|---|
| 行 17: | 行 17: | ||
| * [[apricot: | * [[apricot: | ||
| * Apricot トランザクション | * Apricot トランザクション | ||
| - | * [[apricot: | + | * [[apricot: |
| ユーザ登録画面にトランザクションの機能を追加します。トランザクションを作るか否かはアクション毎に設定できるようにします。また、トランザクション機能を追加することによりアクションでスローされる [[apricot: | ユーザ登録画面にトランザクションの機能を追加します。トランザクションを作るか否かはアクション毎に設定できるようにします。また、トランザクション機能を追加することによりアクションでスローされる [[apricot: | ||
| 行 136: | 行 136: | ||
| ===== ユーザコントローラ ===== | ===== ユーザコントローラ ===== | ||
| - | アクションにトランザクションを設定したい場合は、コントローラのコンストラクタ内で以下のように行います。 | + | アクションのトランザクション処理を有効にしたい場合は、コントローラのコンストラクタの中でControllerクラスのtransactional()メソッドを使って、以下のようにします。 |
| - | >TODO: | + | * **transactional( ' |
| {{fa> | {{fa> | ||
| 行 173: | 行 173: | ||
| </ | </ | ||
| - | * TODO | + | * transactional()を使って3つのアクション( '' |
| - | * 記号なしリスト | + | |
| \\ | \\ | ||
| 行 186: | 行 185: | ||
| - 画面B | - 画面B | ||
| - | 画面A, | + | 前もって |
| === 画面A === | === 画面A === | ||
| - | [{{apricot: | + | [{{apricot: |
| ■ 備考を変更して[保存]ボタンを押します。 | ■ 備考を変更して[保存]ボタンを押します。 | ||
| - | [{{apricot: | + | [{{apricot: |
| + | ■ 正常に保存できます。 | ||
| \\ | \\ | ||
| === 画面B === | === 画面B === | ||
| - | [{{apricot: | + | [{{apricot: |
| ■ 備考を変更して[保存]ボタンを押します。 | ■ 備考を変更して[保存]ボタンを押します。 | ||
| - | [{{apricot: | + | [{{apricot: |
| - | ■ TODO | + | ■ 画面表示時点のデータが変更されているので楽観的ロック例外が発生します。 |
| \\ | \\ | ||