DBFlute: “for update”をがささっとできます


OptimisticLockが流行の時代にあまり更新Lockを取得することはないですが、
Projectの方針や設計次第では必要になることもあります。

DBFluteでは、ConditionBeanで簡単に“for update”を出力することが可能です。

final BookCB cb = new BookCB();
cb.setBookId_Equal(new BigDecimal(3));
cb.lockForUpdate();// ★ここ!
bookBhv.selectEntity(cb);

但し、結合(setupSelect)と同時にlockForUpdate()を実行した場合、
LocalTable(基点Table)だけにLockが掛かるか結合した全てのTableに
掛かるかはDBによって違う可能性があります。
結合してfor updateすると文法エラーのDBもあったような...
DB上不可能な場合は仕方ないのですが、できるだけLocalTable(基点Table)だけに
Lockが掛かるように調整はしたいと思います。
(結合Table全てにLockする意味はほとんど無いと思われるため)