Если мы получим одну и ту же сущность в том же сеансе, то hashCode () будет таким же.
Ожидается, что это кэш первого уровня Hibernate (здесь Session
)сохраняет сущности, загруженные внутри транзакции, в кэш для продолжительности жизни транзакции.
сущность не извлекается второй раз, она просто извлекается из кэша.
Каждый сеанс извлекает одну и ту же сущность изстол.Когда я печатаю их hashCode (), они различаются.
Поскольку загруженные сущности не разделяются между сеансами, это означает, что вы не переопределили hashCode()
для сущности.
Таким образом, чтобы гарантироватьтот же hashCode()
, а также их равенство (equals()
), переопределить equals()/hashCode()
, если это имеет смысл.