у меня есть два объекта
Один с ленивой загрузкой
product:5757b95d1d8eecdd01e59b29$LazyLoadingProxy
Другой нетерпеливый загружен
com.entity.Product@5e6c4568
Я знаю, что оба объекта одинаковы, так как они имеют одинаковый уникальный идентификатор (id=5757b95d1d8eecdd01e59b29
).
У меня есть в моем классе Product
следующие методы:
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = (prime * result) + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Item other = (Item) obj;
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
return true;
}
Но теперь, когда я выполняю следующую операцию, я не получаю совпадений. Любые подсказки?
temp.contains(product) == false
temp
содержит лениво загруженные элементы, а product
содержит обычные элементы.
equals
преобразуетobj
вItem
. Это либо ошибка, либо неочевидно, чтоProduct extends Item
. - person mp911de   schedule 09.06.2016