休眠同步更新

时间:2012-05-16 09:46:58

标签: java hibernate

考虑一个场景 - 2个应用程序访问/更新单个数据库。其中一个应用程序正在使用hibernate&有来自db的一些记录,现在将处理它们&把它救回来。但在保存之前,其他应用程序会更新同一组记录。在这种情况下会发生什么? hibernate会在保存时抛出错误吗?或者hibernate将具有同步更新记录的智能?

1 个答案:

答案 0 :(得分:1)

hibernate会抛出StaleObjectException。这是why

Hibernate使用optimistic locking来处理数据库并发。如果在当前事务提交更改之前,另一个事务修改了要更新的数据,则抛出StaleObjectException

编辑:

以及hibernate如何识别内存中对象的状态是否陈旧?

Hibernate使用版本字段来跟踪对实体的更改。每个提交都会更新此版本字段。现在,如果在提交之前的版本号与在事务开始时读取实体时的版本号不匹配,则抛出StaleObjectException

相关问题