乐观锁(两个以上用户不能同时进行同一操作)

来源:互联网 发布:和利时dcs编程软件 编辑:程序博客网 时间:2024/05/22 11:37
1.新建一个帮助java类,例如
package com.ibm.banking.irmp.common;import java.io.Serializable;import javax.persistence.MappedSuperclass;import javax.persistence.Version;@MappedSuperclasspublic abstract class OptimisticLockSupportEntity implements Serializable {    /**     *      */    private static final long serialVersionUID = 4575574127009076214L;    public final static String CONFLICT_MESSAGE_ID = "COMMSW0005"; //自定义错误信息(当用户和另一个用户同时操作时会报错,然而提供这个错误)    private String updateUserCode;// 最近更新人    private long lockVersion;  //乐观锁的版本号(当用户操作时候就自动更新版本号(如1.2.3。。。)类已经封装好了自动更新版本号,无需手动更新,直接用即可)    @Version    public long getLockVersion() {return lockVersion;}public void setLockVersion(long lockVersion) {this.lockVersion = lockVersion;}    public String getUpdateUserCode() {        return updateUserCode;    }public void setUpdateUserCode(String updateUserCode) {        this.updateUserCode = updateUserCode;    }    }

2.在对某张表操作的时候,即在那个对应的实体类中继承上面的类即可(这张表中要添加几个字段:updateUserCode,lockVersion)

3.在action中,以前是怎么用的就还是怎么用,该调用方法的调用方法,不变

4.在jsp中,要隐藏域一个参数:版本号(lockVersion),无论用户怎么操作(增删改查都必须提交版本号,这样系统会自动判断是否有人同时进行同一操作,如果是同一操作,后台action中会捕捉到异常,即OptimisticLockSupportEntity类中定义的,然后在页面中判断是否有异常,如果有异常则提示“该操作已经被锁定,请稍后刷新在试”)

原创粉丝点击