CommonTools (V0.4.1b) | 2014-06-06 23:24 |
sormap (V0.4.0.0) | 2014-06-06 23:13 |
トランザクションイベントとは、トランザクションのコミット・ロールバックなどのタイミングで イベントで結果を通知する機能全般を指します。 ユーザは、このトランザクションイベントをリスンすることによって、現在のトランザクションにおいて起こった出来事を知ることができます。 この機能を使うと以下のようなユースケースを実現できます。
以下に、本バージョンにてリスン可能なトランザクションイベントの一覧を記載します
No. | イベント名 | イベントクラス | UBTC(ユーザベーストランザクション制御) 機能状態 | イベントにて使用可能なデータなど |
1 | INSERT | org.dyndns.nuda.mapper.event.implementation.InsertEvent | UBTC有効 | * INSERT処理に用いられたデータ * 発行されたSQLを含むオブジェクト(SQLInterfaceBean) |
2 | UPDATE | org.dyndns.nuda.mapper.event.implementation.UpdateEvent | UBTC有効 | * UPDATE処理に用いられたデータ * 発行されたSQLを含むオブジェクト(SQLInterfaceBean) |
3 | DELETE | org.dyndns.nuda.mapper.event.implementation.DeleteEvent | UBTC有効 | * DELETE処理にもちられたデータ * 発行されたSQLを含むオブジェクト(SQLInterfaceBean) |
3 | ROLLBACK | org.dyndns.nuda.mapper.event.implementation.RollBackEvent | UBTC有効 | * 発行されたSQLを含むオブジェクト(SQLInterfaceBean) |
4 | TRANSACTION_COMPLETED | org.dyndns.nuda.mapper.event.implementation.ManualTransactionEvent | UBTC無効 | * トランザクション内で用いられたデータ一覧 * トランザクション完了区分:commit/rollback * 発行されたSQLを含むオブジェクト(SQLInterfaceBean) |
トランザクションイベントは「org.dyndns.nuda.mapper.event.SQLInterfaceEventProcessor」にて受け取ることができます。 以下に使い方の例を示します。
- SQLInterfaceEventProcessor.newInstance().addEventListener(
- new SQLInterfaceEventListener<InsertEvent>() {
- @Override
- public void handle(final InsertEvent event) {
- List<?> insertedObjects = event.getInsertedObjects();
- for (Object insertedObject : insertedObjects) {
- // 必要ならばinsertedObjectを他クラスにキャストして用いる
- if (insertedObject instanceof TestSchemeBean) {
- TestSchemeBean bean =
- (TestSchemeBean) insertedObject;
- int seq = bean.getSeq();
- String name = bean.getName();
- java.util.Date reg_date = bean.getReg_date();
- String desc = bean.getDescription();
- // 上記の値を使って処理を行う
- }
- System.out.println(insertedObject.toString()
- + " がINSERTされました");
- }
- }
- });