У меня есть сущность, скажем, элемент, который использует аннотацию Lombok @EqualsAndHashCode(callSuper = true)
, которая автоматически генерирует equals()
и hashCode()
методы. Объекты помещаются в коллекцию HashSet
.
Проблема в том, что когда я получаю коллекцию из БД (Spring JPARepository
с Hibernate) PersistentSet
прокси с моими элементами в HashSet
и когда я использую Lombok @EqualsAndHashCode
метод persistentSet.contains(object)
возвращает false
. Когда мой hashCode()
возвращает 1 или другое значение, но без автоматически сгенерированных методов Lombok , он работает нормально -> persistentSet.contains(object)
возвращает true
. То, что еще автоматически генерируется Lombok hashCode()
, также кажется хорошим, потому что оно возвращает постоянное значение для данного объекта в течение сеанса. Так что я заблудился.
Может быть, у кого-то есть идея, в чем здесь мы можем ошибаться!?
Версии:
Спящий режим: 5.3.9. Окончательный вариант
Lombok: 1.18.10
база данных: MySQL
Spring: 5.1.9.RELEASE