Hibernate自动版本控制

我开发了一个客户维护应用程序。 用户可以通过Web界面更改客户详细信息。 我想处理以下场景:

  1. User 1加载customer1详细信息。
  2. User 2加载customer1详细信息。
  3. User 1更改并保存customer1name
  4. User 2仅更改并保存customer1的年龄。

在上面的场景中,最后数据库保存customer1的旧名称和新的年龄,因为User 2覆盖了User 1的更新。 我正在使用Hibernate。 我听说Hibernate自动版本控制支持这一点。 如果有人知道如何处理这个请告诉我。

您只需要添加一个用@Version注释的字段:

 public class Customer { @Id private Long id; @Version private Long version; // rest of the fields, etc. } 

阅读本文以获取更多信息。

一个解决方案,当第二个请求倾向于更新细节时,首先检查是否在加载细节后更新,如果是,则引发exception并允许用户在再次加载细节后更改,可以使用修改时间戳进行比较