Eu tenho uma Entity Class mapeada corretamente no Banco de Dados.
Minha dúvida é o seguinte, se eu adicionar um atributo na minha Entity Class ele será transformado automaticamente em uma coluna da minha tabela no Banco de Dados ou terei que adicionar a coluna na mão?
Se for automatico, o que devo fazer para conseguir isso, já que eu tentei e ainda não consegui.
Resposta: Sim, se o seu persistence.xml estiver configurado para criar tabelas, ele vai gerar uma coluna por atributo de uma entidade (classe) mapeada com @Entity. -A NÃO SER QUE, este atributo seja marcado como @Transient-
Verifique se o seu persistence.xml contém esta configuração ± assim:
marcel.begliomini
peerless, obrigado pela ajuda.
Meu persistence.xml está conforme vc disse, só deixe eu explicar melhor o cenário.
Criei minha classe de entidade corretamente e a JPA criou a respectiva tabela no banco.
Só que passado algum tempo percebi que esqueci de adiconar um atributo na classe…então criei o atributo corretamente, mas a JPA não cria a NOVA coluna na tabela…a não ser que eu mude minha configuração do meu persistence.xml para
, mas se fizer isso ele dropa a tabela e consequentemente perco todos os dados.
Queria saber uma forma de criar essa nova coluna (atributo) no banco de dados automaticamente sem perda de dados.
Obrigado novamente.
A
Alex_Lima
Costumo usar <property name=“hibernate.hbm2ddl.auto” value=“update”/> para atualizar o banco local do ambiente de desenvolvimento. Faça um teste para ter certeza de que não apaga os seus dados.
peerless
marcel.begliomini:
peerless, obrigado pela ajuda.
Meu persistence.xml está conforme vc disse, só deixe eu explicar melhor o cenário.
Criei minha classe de entidade corretamente e a JPA criou a respectiva tabela no banco.
Só que passado algum tempo percebi que esqueci de adiconar um atributo na classe…então criei o atributo corretamente, mas a JPA não cria a NOVA coluna na tabela…a não ser que eu mude minha configuração do meu persistence.xml para
, mas se fizer isso ele dropa a tabela e consequentemente perco todos os dados.
Queria saber uma forma de criar essa nova coluna (atributo) no banco de dados automaticamente sem perda de dados.
Obrigado novamente.
Entendi, tipo então um “alter table” - bom, segue o que o colega Alex disse acima, só substituindo o ddl! -de qualquer forma, sobra criar esses atributos na mão mesmo! -