Beleza galera, essa é meu primeiro topico aqui no GUJ, espero que consiga me espresar pra não confundir a galera.
Vamos lá.
Gostaria de saber porque devemos implementar o Serializable e sobrescrever os métodos equals e hashCode nas Entity JPA.
Att.
César Vale
Eu acho que essa do Serializable não é realmente necessário. Pode depender bastante do seu contexto.
Dá uma olhada neste link.
O equals e o hashCode (resumidamente) testam a igualdade entre dois objetos. Se você quer comparar 2 valores do tipo inteiro (int), você usa o “==”. Por outro lado, se você quiser comparar dois objetos do tipo Integer, você teria de usar equals (if um.equals(dois) … ). Um exemplo do hashCode bem básico é o seguinte: imagine que você tem arquivos XML e quer comprar um arquivo a com um b. Você poderia usar o equals ou o hashCode. Se você usar o hashCode, o valor do hashCode do a vai ser idêntico ou valor do hashCode de b se eles forem ‘o mesmo arquivo com um nome diferente’ ou coisa do tipo.
Conforme o André disse uma entidade não precisa ser Serializable. Porém toda PK precisa ser Serializable.
Além disso, quando você utiliza uma aplicação distribuída você precisa serializar os DTOs.