1
resposta

Sobre renomear a coluna depois de ja persistir dados na tabela

Olá, rede, estava aqui fazendo os exercicios e tinha persistido dados na minha tabela Categoria, mas vi a sugestão de usar o Columns(name="") para ver o que aconteceria, achei muito legal que o banco cria outra tabela com o nome passado em columns, e os dados que seriam da antiga coluna ficam null, bem como os dados anteriores da coluna atual também saem como null, ou seja, os dados que não foram passados em nenhuma dessas colunas ficam "null". Sempre bom aprender como funcionam as coisas na base da curiosidade!!!

1 resposta

Olá, Arthur! Como vai?

Que bom que você está explorando e aprendendo com curiosidade! Quando usamos a anotação @Column(name = "novo_nome") no JPA, estamos dizendo ao JPA que o atributo da classe deve ser mapeado para uma coluna com um nome diferente no banco de dados. No entanto, essa mudança não altera automaticamente o nome da coluna já existente no banco de dados, especialmente se dados já foram persistidos.

Por isso, quando você mudou o nome da coluna usando @Column, o JPA tentou mapear o atributo para uma nova coluna com o nome especificado, mas como essa coluna ainda não existia no banco, os dados ficaram como null.

Para renomear uma coluna já existente no banco de dados e manter os dados, você precisaria executar um comando SQL de alteração diretamente no banco de dados, algo como:

ALTER TABLE Categoria RENAME COLUMN nome_antigo TO novo_nome;

Lembre-se de que alterações diretas no banco de dados devem ser feitas com cuidado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!