Hibernate-2打开的windows记录覆盖其他

Hibernate-2打开的windows记录覆盖其他,hibernate,Hibernate,我有一些Hibernate bug,可能很容易解决,但我无法解决它。我正在使用Spring&Hibernate&mssql。 我从列表中选择了一个要编辑的Employee对象。如果我在一个选项卡中打开员工A,那么如果我在另一个选项卡中打开员工B。如果我在B仍然打开时提交员工A,它会将A中的数据保存到B中-覆盖B。 我看过Equals&Hashcode,我有一个Version列,甚至尝试过搞乱SQL的隔离级别。我还没弄明白。这正成为一个主要问题,因为用户常常会同时打开两个雇员,以便从一个雇员复制到

我有一些Hibernate bug,可能很容易解决,但我无法解决它。我正在使用Spring&Hibernate&mssql。 我从列表中选择了一个要编辑的Employee对象。如果我在一个选项卡中打开员工A,那么如果我在另一个选项卡中打开员工B。如果我在B仍然打开时提交员工A,它会将A中的数据保存到B中-覆盖B。 我看过Equals&Hashcode,我有一个Version列,甚至尝试过搞乱SQL的隔离级别。我还没弄明白。这正成为一个主要问题,因为用户常常会同时打开两个雇员,以便从一个雇员复制到另一个雇员。我不使用注释,而是使用java+hbm文件进行映射。 这是我的equals&hashcode

public boolean equals(Object other) {
    if ((this == other)) {
        return true;
    }
    if (!(other instanceof Employee)) {
        return false;
    }
    Employee castOther = (Employee) other;
    return this.userLogin.equals(castOther.getUserLogin());
}

public int hashCode() {
    return new HashCodeBuilder().append(this.getUserLogin()).toHashCode();
}
这是我在hbm中的版本声明

<version name="version" column="VERSION" unsaved-value="negative" />

尽管您的问题有点含糊不清,但可以猜测您的Web应用程序正在使用cookie存储标识符,并根据cookie中的值将更新提交给字段。也就是说,打开A(cookie设置为A.Id),编辑A,在新选项卡中打开B(cookie设置为B.Id),编辑B,保存A(错误的cookie Id!),然后A.values->B.values。
不过,这只是一个不知情的猜测