Hibernate自动版本控制
我开发了一个客户维护应用程序。 用户可以通过Web界面更改客户详细信息。 我想处理以下场景:
-
User 1
加载customer1
详细信息。 -
User 2
加载customer1
详细信息。 -
User 1
更改并保存customer1
的name
。 -
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并允许用户在再次加载细节后更改,可以使用修改时间戳进行比较
- Spring – Autowire java.lang.NoClassDefFoundError
- 通过hibernate比较sql server中的时间
- 使用jsf,spring,hibernate进行快速全局搜索
- ClassNotFoundException:org.hibernate.service.jndi.JndiException
- 如何使用JPA连接到多个数据库?
- org.hibernate.InstantiationException:没有实体的默认构造函数:: principal.Cliente
- java.lang.NoClassDefFoundError:当我向控制器发送无效值时javax / el / PropertyNotFoundException
- Spring源码套件spring3 + Hibernate4 + maven 3 + MySQL 5
- “在注释ConcurrentHashMap时,在hibernate中非法尝试将非集合映射为@OneToMany,@ ManyToMany或@CollectionOfElements”