Встречается на собеседованиях • сегодня

Как проверить наличие изменения в сущности

Для проверки изменений в сущности можно использовать несколько подходов:

  1. Сравнение хеш-кодов – переопределить hashCode() и сравнивать до/после изменений. Но не всегда надежно из-за коллизий.

  2. Переопределение equals() – ручное сравнение полей. Надежнее, но требует больше кода.

  1. Использование Comparator – если нужно сравнить только определенные поля.

  2. Библиотеки – Apache Commons Lang EqualsBuilder.reflectionEquals() или HashCodeBuilder.reflectionHashCode().

Пример с equals():

java
@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    User user = (User) o;
    return Objects.equals(id, user.id) && 
           Objects.equals(name, user.name);
}

Для JPA-сущностей можно использовать Hibernate DirtyChecking или сравнивать с оригинальной версией через EntityManager.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы