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