Olá, percebo que nas classes entidades não foram implementadas a interface Serializeble, nem implementando métodos equals e hashcode, isso pode gerar algum problema em um ambiente de produção, ou o hibernate consegue lidar com este tipo de situação?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, percebo que nas classes entidades não foram implementadas a interface Serializeble, nem implementando métodos equals e hashcode, isso pode gerar algum problema em um ambiente de produção, ou o hibernate consegue lidar com este tipo de situação?
Oi José, tudo bem ?
Por padrão não, geralmente que precisa dessas informações são os servidores de aplicação para conseguir serializar e desserializar os objetos, para funcionamento interno.
Oi José tudo bem?
Em JPA é uma boa pratica sempre implementar a interface Serializable, pois em alguns momentos (quando usa nativa Query por exemplo) é obrigatório a sua implementação, Já o equals e hashcode só é obrigatório quando você precisa mapear uma chave composta.
Olá pessoal, andei dando uma pesquisa a este respeito e vi que é importante reescrever os métodos equal e hashcode pelos seguintes motivos: No modelo objeto relacional quem me garante que o objeto_1 é igual ao objeto_2 na aplicação?
Exemplificando, imagine que eu crie um objeto do tipo Pessoa chamado pessoa01 e este objeto se refira ao José com código 01, todavia foi necessário eu criar uma pessoa02 que também se refere ao José que tem no DB o seu código número 01.
Se eu comparar se o pessoa01 é equal a pessoa02 ele me retornará false, isso estaria errado visto que são a mesma pessoa.
Assim vi a necessidade de reescrever o método equal para que ele compare o código dos objetos pessoa, ou seja pessoa01.codigo e pessoa02.codigo, pois o código é a chave primaria no DB (Não repetindo), dai sim ele me retorna true.
Já o hashcode me auxilia no desempenho de consulta na tabela hash. Alguém tem um exemplo onde podemos perceber a diferença de performance?
Muito obrigado pelo retorno,
Atenciosamente,
Gonzaga.
Oi Gonzaga, como vai?
Realmente essa é a aplicação dos métodos equal e hashcode, mas só para deixar claro, o JPA não exige que esses métodos sejam rescritos.