JavaのDBプログラミングメモ
- トランザクション分離レベル
Dirty Reads | Non-Repeatable Reads | Phantom Reads | |
TRANSACTION_NONE | 発生する | 発生する | 発生する |
TRANSACTION_READ_UNCOMMITTED | 発生する | 発生する | 発生する |
TRANSACTION_READ_COMMITTED | 発生しない | 発生する | 発生する |
TRANSACTION_REPEATABLE_READ | 発生しない | 発生しない | 発生する |
TRANSACTION_SERIALIZABLE | 発生しない | 発生しない | 発生しない |
- 楽観的ロック
- @Versionを使う。更新の衝突が起こるとjavax.persistence.OptimisticLockExceptionがthrowされる。
楽観的ロックが一般的らしい。[Seasar-user:10097] Re: [S2Dao] 行ロック(FOR UPDATE)について
トランザクション分離レベルはTRANSACTION_READ_COMMITTEDで楽観的ロックを使うケースが多いのかな。
うーん、しかしDB周りの知識が不足しているな。ボクハ。