06/02/01 10:53:44
>>659
>DAOの中のみでTransaction制御
これって複雑なことをやろうとすると破綻しないかい?
複数のテーブルを更新するのもDaoのメソッド単位になる、
従って肥大したDaoImplを書かざるを得なくなる、という原因で。
オレのやり方だとこんな感じだ。
<ServiceLayer>
public void deposit(Account account, Money increasedMoney){
accountDao.update(account);
revenueDetailDao.insert(account, increasedMoney);
}
で、トランザクションはあくまでserviceLayerに置く。つまり上の
depositメソッドに対してPROPAGATION_REQUIREDを設定する。
オレはさらに、dao層、上の例ではaccountDao.updateと
revenueDetailDao.insertに対しては
PROPAGATION_MANDATORYをかけている。
これによりserviceLayerを通さずにDaoに触ったら即座にアポーン。
君の「DAOの中のみでTransaction制御」だと、上の二つの
メソッドを一つにまとめないと原始性を維持できないのでは?
勘違いだったらスマソ。