DBFluteをPlay Framework 2.6.x 上で 使用するサンプルです。
- O/RマッパーにDBFluteを使用
- Web FrameworkにPlay Frameworkを使用
- Spring FrameworkのTransaction Managementを使用。メソッドへの@Transactionalアノテーション(see Reference)の付加や、TransactionTemplate(see Reference)を使用したトランザクション制御を行うことができる。混在も可能。基本的な、通常実行時にはCommit、例外発生時にRollbackする動作の他、柔軟なトランザクション制御(e.g. Transaction propagation)が可能
- コネクションプールにPlay Framework組み込みのHikariCPを使用
- Dependency InjectionライブラリにPlay Framework組み込みのGoogle Guiceを使用
Run this using sbt. (see Installing sbt)
Start the Play app:
sbt run
And open http://localhost:9000/
テストを実行します
sbt test
test.functional.TransactionTestService
クラスに多様なトランザクション処理の記述例があります
DBFlute関係(DBFluteクライアント、エンジン、生成ソース)をサブプロジェクトとしてメインプロジェクトと分離しています (dbfluteディレクトリ)
Play Framework デフォルトのログ出力は非常にシンプルですが、このサンプルではActionやTransactionの開始・終了、実行SQLがログで確認出来るよう設定しています
データベース処理用のカスタムExecutionContextを使用した非同期処理のサンプルがあります
- DBFlute - Guice連携に関して -- Google Guiceの取扱い
- PlayFramework使用時のDBFluteのAccessContext設定 - 複数スレッドに渡るTransactionへの対応
- Springのトランザクション管理 - (その14)トランザクション管理 - あるまに
サンプルの動作は play-java-forms-example および play-java-starter-example を参考にさせていただきました。