Вы получили прямо противоположный вывод из этой статьи о том, что он пытался донести.
Hibernate в значительной степени полагается на равные, реализованные правильно. Если вы этого не сделаете, произойдет сбой.
На самом деле, почти все делают; включая стандартные коллекции Java.
Реализация по умолчанию не работает при использовании постоянства. Вы должны всегда использовать как равные, так и хэш-код. Существует также простое правило, как это сделать:
- Для сущностей используйте ключ объекта.
- Для объектов-значений используйте значения
Всегда проверяйте, что значения, которые вы используете в вашем equals / hashcode, являются неизменяемыми. Если вы раздаете их (как в получателе), желательно раздавать их в неизменяемой форме.
Этот совет улучшит вашу жизнь :)