假设我有一个由多个应用程序共享的数据库。一个应用程序使用基于ORM的方法(比如说hibernate)进行持久化,另一个应用程序使用sql进行持久化。对数据库执行写操作。
如果我们选择乐观锁定选项,我们如何才能确保并发控制? 如果使用SQL插入数据,Hibernate会自动同步持久对象
答案 0 :(得分:0)
使用SQL的应用程序可以手动进行乐观锁定。我将在下面解释。
使用Hibernate的应用程序不会知道其他应用程序新插入的对象,但是当它加载更新陈旧数据并与其他应用程序冲突时,它可以抛出。 HIbernate使用这种方式(乐观锁定)来保护更新其他用户先前加载和更新的陈旧数据。
我们可以使用verion属性手动使用乐观锁定:
更新table1 set name ='new name',version = version + 1,其中version = versionLoadedBeforeUpating且id = 1234;