Нужно ли переопределять методы equals и hashcode в DTO? Потому что DTO просто используется для передачи данных. Есть ли какая-нибудь передовая практика или что-то в этом отношении?
Объекты, помещенные в список, набор или карту (как ключ или значение), должны иметь соответствующее определение равных.
Конечно, DTO используются не только для передачи, мы сохраняем их, сортируем, кешируем их...
На практике люди предоставляют равные и хэш-функции? Нет, не всегда. Должны ли мы? Я так думаю.
Ответ 2
Независимо от того, нужно ли вам обеспечить реализацию equals и hashcode для ваших классов DTO, зависит от того, как вы их используете.
Если вы используете их с одной или несколькими коллекциями, вы должны предоставить реализацию для соответствующего метода. Почти все коллекции вызывают equals на хранящиеся объекты. Наборы таблиц на основе хэш-таблицы, такие как HashSet и HashMap вызов hashcode, тогда как отсортированные коллекции, такие как TreeSet и TreeMap вызов compareTo в дополнение к equals.