2012-04-02 4 views
1

У меня есть ошибка Hibernate, которая, вероятно, очень проста в решении, но я не могу понять это. Я использую Spring & Hibernate & MS SQL. У меня есть объект Employee A, который я выбираю для редактирования из списка. Если я открою Employee A на одной вкладке, тогда я открою Employee B на другой вкладке. Если я затем отправлю Employee A, а B все еще открыт, он сохранит данные от A до B - перезаписав B. Я просмотрел мои Equals & Hashcode, и у меня есть столбец Version и даже попытался возиться с уровнем изоляции SQL. Я до сих пор не понял этого. Это становится серьезной проблемой, так как часто пользователь одновременно открывает двух сотрудников одновременно для копирования из одного в другое. Я не использую аннотации и использую файлы java + hbm для своих сопоставлений. Вот мои равно & хэшHibernate - 2 записи открытых окон перезаписываются другие

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(); 
} 

Вот моя версия декларации в моем НВМ

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

ответ

0

Хотя ваш вопрос более чем немного расплывчатым, предположение было бы, что ваш веб-приложение использует куки для хранения идентификатор и отправку обновлений в полях в соответствии со значением в этом файле cookie. То есть, открыть A (cookie установлен на A.Id), отредактировать A, открыть B на новой вкладке (cookie to B.Id), отредактировать B, сохранить A (неправильный идентификатор файла cookie!), А затем A.значения -> B. значения.
Просто неосведомленное предположение.

+0

Нет - нет печенья вообще –

Смежные вопросы