Hibernate を使用してデータベースからオブジェクトを読み取り、値を変更し、オブジェクトを保存したいという問題があります。値の変更に時間がかかる場合、データベース内の基になるオブジェクトが変更されていないことを確認する最善の方法は何ですか? これを 1 つのトランザクション (および 1 つのセッション) で行っています。
コードは次のようになります。
// Load from DB
Criteria crit = session.createCriteria( Dummy.class ).add( Restrictions.eq("id", 5) );
Dummy val = crit.uniqueResult();
// Processing time elapses.
// Update value of dummy.
val.x++;
// Save back to database. But what if someone modified the row with ID = 5 in the meantime, and changed the value of x?
session.saveOrUpdate( val );