1
resposta

[Dúvida] JoinColumn e JsonIgnore. Como funcionam?

Não entendo por que foi utilizado a anotação @JoinColumn no último vídeo da aula 2 (por volta de 14:32). Quando fui pesquisar sobre, confesso que fiquei ainda mais confuso. Pelo que entendi a anotação adiciona uma nova coluna com o nome específico passado por parâmetro.

Além disso, qual seria a diferença entre usar a @JsonIgnore e @JsonIgnoreProtperties ?

1 resposta

Olá, Joaquim!

A anotação @JoinColumn é utilizada para mapear uma coluna de chave estrangeira em uma entidade associada. No contexto do último vídeo da aula 2 do curso Kotlin e Spring: segurança e infraestrutura, a anotação @JoinColumn foi utilizada para definir a coluna que faz o relacionamento entre as tabelas usuario e role.

Por exemplo, se você tiver a tabela usuario com uma coluna role_id que faz referência à tabela role, você pode utilizar a anotação @JoinColumn para mapear essa coluna na entidade Usuario. Dessa forma, você estará informando ao framework que essa coluna é responsável pelo relacionamento entre as tabelas.

A diferença entre @JsonIgnore e @JsonIgnoreProperties é que a primeira anotação é utilizada para ignorar um campo específico durante a serialização e a desserialização de um objeto JSON, enquanto a segunda anotação é utilizada para ignorar múltiplos campos de uma classe durante a serialização e a desserialização de um objeto JSON.

Por exemplo, se você tiver uma classe Usuario com os campos id, nome e senha, e quiser ignorar o campo senha ao serializar o objeto para JSON, você pode utilizar a anotação @JsonIgnore no campo senha. Já se você quiser ignorar tanto o campo nome quanto o campo senha, você pode utilizar a anotação @JsonIgnoreProperties({"nome", "senha"}) na classe Usuario.

Espero ter esclarecido suas dúvidas! Se tiver mais alguma pergunta, é só me dizer. Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software