Правильно ли для equals () зависеть только от идентификатора?

Позволять'Предположим, у меня есть класс:User

public class User {
  private Long id;
  private String name;
  private Integer age;
  private BigDecimal account;
  // other fields, getters and setters
}

Правильно ли переопределитьequals метод следующим образом?

@Override
public boolean equals(Object ob) {
   if (ob == null) {
       return false;
   }
   if (this == ob) {
       return true;
   }
   if (ob instanceof User) {
       User other = (User) ob;
       return this.id.equals(other.getId());
   }
   return false;
}

Оказывается, уникальность объекта определяется только его идентификатором. Но в моем приложенииid всегда уникален Это's предоставляется в базе данных. Мойequals реализация достаточно компетентна, чтобы учесть это? Или это не лучшая практика?

Конечно, я понимаю, что в этом случаеhashCode Реализация должна быть следующей:

@Override
public int hashCode() {
   return id.intValue();
}

Ответы на вопрос(5)

Ваш ответ на вопрос