У меня есть объект домена Пользователь. Свойства пользователя включают ssoId, имя, адрес электронной почты, createdBy, createdDate и userRole. Из них ssoId должен быть уникальным в том смысле, что ни один из двух пользователей не может иметь одинаковый идентификатор sso. Поэтому мой метод equals проверяет идентификатор sso и возвращает либо true, либо false.
@Override public boolean equals(Object o) {
if (!(o instanceof User))
return false;
return user.getSsoId().equals((User)o.getSsoId());
}
Я чувствую, что это неправильная реализация, хотя она правильна в отношении бизнес-правил. Вышеупомянутая реализация вернет true для двух объектов с одним и тем же идентификатором sso, но с разными значениями для имени или электронной почты или обоих. Должен ли я изменить свой равный контракт, чтобы проверить равенство всех полей? Каково ваше предложение?