Проблема с идентификацией объекта и Hibernate связана с временными объектами: когда создается первичный ключ? Если ответ при записи в БД (с использованием генерации первичного ключа, управляемого БД, например, последовательности Oracle), у вас есть потенциальная проблема.
Если первичный ключ используется в качестве основы для проверки равенства и является частью генерации хеш-кода, то вы нарушите контракт хеш-кода, поскольку объект не будет прежним до и после генерации первичного ключа.
Если вы можете, просто используйте сгенерированный первичный ключ, который вы можете установить во время создания объекта (например, UUID). Это гарантирует, что ваш хэш-код и проверка на равенство остаются согласованными.