我有一个问题,我想使用 Hibernate 从数据库中读取一个对象,更改一个值,然后保存该对象。如果更改值需要一些时间,那么确保数据库中的基础对象没有更改的最佳方法是什么?我在一个事务(和一个会话)中执行此操作。
代码看起来像:
// 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 );