处理Java + hibernate中的同步数据库更新

时间:2015-03-03 22:05:36

标签: java database hibernate concurrentmodification

您好我正在处理一个项目,我必须处理一个案例,当2个用户在同一个屏幕上处理相同的订单时。如果用户1首先提交或更新订单,那么我不希望用户2提交相同的订单,而是向他发出警告,提示这些订单已经提交,然后刷新页面。你们是否认为这是正确的方法,我如何在Java和hibernate中实现它?

1 个答案:

答案 0 :(得分:0)

Hibernate中有Version的概念。或者所谓的optimisting locking

每个实体都有一个版本字段。即,每个表中的一列用于存储此版本。将实体保存到数据库时,hibernate将处理vrsioning。如果有任何关闭,它将抛出异常。

@Entity
public class Flight implements Serializable {
...
    @Version
    @Column(name="OPTLOCK")
    public Integer getVersion() { ... }
}  

参考:http://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch05.html#d0e2225