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?
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.