aneira correta de implementar contrato igual [duplicado]

Esta pergunta já tem uma resposta aqui:

Quais problemas devem ser considerados ao substituir iguais e hashCode em Jav 11 respostas

Tenho um objeto de domínio chamadoDo utilizado. As propriedades do usuário incluem ssoId, nome, email, createdBy, createdDate e userRole. Destes,ssoId deve ser único no sentido de que dois usuários não podem ter o mesmo ID de SSO. Portanto, meu método equals verifica o ID do Sso e retorna verdadeiro ou fals

@Override public boolean equals(Object o) {
    if (!(o instanceof User))
      return false;
    return user.getSsoId().equals((User)o.getSsoId());
}

O que eu sinto é que esta é uma implementação incorreta, embora esteja correta no que diz respeito às regras de negócios. A implementação acima retornará true para dois objetos com o mesmo ID de SSO, mas com valores diferentes para, por exemplo, nome, email ou ambos. Devo alterar meu contrato de iguais para verificar a igualdade de todos os campos? Qual é a sua sugestão

questionAnswers(4)

yourAnswerToTheQuestion