現在javaの勉強中なのですが
以下のような流れの処理をボタンを押された際に呼び出されるメソッドに丸ごと詰め込んでいる状態です。
1.トランザクション開始
2.テーブルAからデータ取得
3.なんかいろいろ処理
4.テーブルBにデータ登録
5.トランザクション終了(コミット)
これをDAOを使った作りに書きなおしてみたいと思ったのですが、
その場合トランザクションの管理はどこで行うべきなのでしょうか?
パッと思いついたのは以下の2つです。
①1~5全てをDAOの1つのメソッドに詰め込む。
トランザクションの管理はDAOのメソッド内で行う
②1,3,5はビジネスロジックにして2,4は個別のメソッドとして定義する。
トランザクションの管理はビジネスロジックで行いDAOには引数等でトランザクションを渡すようにする。
しかし、①にした場合DAOにビジネスロジックが入っていしまう上にメソッドの粒度が大きくなりすぎる気がします(呼び出し元が何もしないでDAOのメソッド呼び出すだけなので元々と変わらないですし)。
②の方法にすると何となく解決は出来そうなんですがDAOを使った開発のパターンとして正しいものなのかどうかがわからないです。
フレームワーク等を使えばそれらが上手いことやってくれるらしいので気にしなくていいのかもしれませんが、
別の言語でも同じ問題にぶつかる可能性が高いですし、初学者なのでそれらに頼らずに自分で管理するように書いてみたいと思っています。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー