Конечно, таким образом вы используете бизнес-идентификатор, а не тот, который, вероятно, сгенерирован поставщиком jpa, и в результате управляющие сущности равны тем, которые не являются.
Например, если мы создаем объект, в котором идентификатор генерируется базой данных, и сохраняем его, следующее не дает ошибок:
Entity entity = new Entity();
Entity savedEntity = entityRepository.save(entity); // CrudReporitory
assertFalse(entity.equals(savedEntity));
В большинстве случаев это не то, что нам нужно.Для более подробной информации я рекомендую эту статью .