2013-03-12 24 views
1

假设我有一个由多个应用程序共享的数据库。一个应用程序使用基于ORM的方法(如hibernate)进行持久化,而另一个应用程序使用sql进行持久化。两者都对数据库执行写操作。共享数据库中的并发控制

如果我们选择乐观锁定选项,我们如何确保并发控制? 如果数据是使用SQL插入,会自动同步的Hibernate持久对象

+0

你在hibernate中使用缓存吗? – beny23 2013-03-12 10:42:29

+0

说我不使用缓存..如果我使用乐观锁定的版本控制方法..如何将orm知道另一个应用程序已更新数据库 – binu 2013-03-12 10:49:46

回答

0
  • 它使用SQL可以去乐观手动锁定应用程序。我将在下面解释它。

  • 使用Hibernate的应用程序不会知道其他应用程序新插入的对象,但它可以在加载更新陈旧数据并与其他应用程序冲突时抛出exceptin。 HIbernate使用这种方式(乐观锁定)来保护由其他用户更早加载和更新的更新陈旧数据。

  • 我们可以用乐观锁manaually使用其它版本属性:

    更新表1集名称= '新名',版本=版本+ 1其中version = versionLoadedBeforeUpating和id = 1234;