Spring Transaction

概要

Spring Transactionは、DBのトランザクション管理機能を提供します。

一般に、トランザクションの管理は意外と難しい問題です。

例えば、複数のビジネスロジックのメソッドを呼ぼうとしたとき、1つのトランザクションで管理しようと思うと大変です。

なぜならメソッド間で同じConnectionオブジェクトを共有しなければ、1つのトランザクションでcommit/rollbackできないからです。

このため、Connectionオブジェクトをビジネスロジックのメソッドの引数として渡す、ということを考えがちです。

しかしこれは良いアイデアではありません。

そもそもビジネスロジックでDBの処理を考えなくても良いようにDAOを作っているはずです。

でも、このアイデアではビジネスロジックで思いっきりDBの処理(commit/rollback)をすることになります。

つまり、DBを隠蔽化できなくなってしまうのです。

かといって他に方法がぱっとは思いつきません。

このように、トランザクション管理の問題は意外と面倒な問題なのです

Spring Transactionを使用すると、設定のみでこの問題を解決することもできます。

やり方はいくつかありますので、以下に紹介していきます。

Created Date: 2011/01/31