По какой-то причине, когда lazy = true для всех моих сущностей, метод equals () не работает правильно, когда одна сторона является лениво загруженной сущностью, а другая сторона - нормальной сущностью.Вот пример:
if(activeTask.getTask().equals(task)) {...}
В этом случае задача ActiveTask будет прокси, а правая сторона будет обычной.Равно () не удастся.Чтобы решить эту проблему, я часто делаю такие вещи:
if(activeTask.getTask().getId() == task.getId()) {...}
Это работает, но не идеально.Я предпочел бы использовать метод equals ().
У кого-нибудь есть хорошее решение этой проблемы?Это действительно добавляет к уровню шума приложения необходимость думать о таких вещах.
Если я скажу lazy = false, мне не придется иметь дело с прокси, и поэтому equals () будет работать.Но это очень негативно влияет на производительность.
Просто нехорошо говорить, что "equals () работает во всех случаях, кроме случаев, когда вы используете прокси ... тогда equals () не надежен. "