我有一个包含@version字段的实体。
有时候我需要更新它,尽管会出现乐观锁异常。
在这种情况下,我能否关闭乐观锁机制?或者我应该重新加载实体,并重试n次直到它更新?
在这种情况下,我能否关闭乐观锁机制?或者我应该重新加载实体,并重试n次直到它更新?
您可以直接使用连接进行工作:
org.hibernate.Session.doWork(Work work)
。
但是,这样会导致最后写入的数据覆盖之前的数据。最好使用事务隔离级别来执行行锁定。但是,数据库必须支持它们。
Hibernate 3.x
有Session.connection()
,但在4
中已经被删除。