Seguinte, possuo um projeto com jsf e hibernate, funcionando bunitinho só que quando eu tenho alterações nas classes tenho que mudar a Opçao do hibernate.cfg.xml de “Update” para “create” para as classes modificadas tenham as tabelas modificadas, somente com update ele nao faz isso. só que, enquanto eu estiver desenvolvendo o projeto, está bom, a minha duvida é, depois que eu entregar a aplicação e o responsavel pela aplicação me pedir para adicionar um novo atributo, ou nova classe, enfim. Como faço para mudar isso sem precisar ter que dar “Create” no hibernate.cfg.xml, ou seja, sem perder as informaçoes que ja tinha, tendo que limpar o banco?
com jdbc eu chegava a mudar com sql usando Alter table … e depois na persistencia, mais com hibernate eu nao faço nada disso, sei que vocês já passaram ou passam por isso diariamente, eu sou estudante ainda e estou começando a pouco tempo, por favor preciso da ajuda de vocês.
se falei algo errado ou falta de informações, me digam que posso dar mais informaçoes sobre o que uso.
Estranho a opção update não fazer o que você quer. Deveria estar funcionando.
Não sei que nível é seu projeto e cliente, mas geralmente o banco de dados tem um responsável que faz as alterações que o desenvolvedor pede, assim ele pode também ter uma documentação do banco de dados, como você tem sobre as classes de sua aplicação. Então, nesses casos, não se usa a opção de Updade ou mesmo Create do Hibernate, já que isso deve ser feito pelo DBA no banco de produção. Agora, se seu update não funciona e você não tem um DBA responsavel pela base de dados, faça você mesmo na mão com um Script Sql.
agora fiquei um pouco curioso, no caso o update deveria fazer essa mudança automaticamente?
se o sistema já estiver em produção o melhor a fazer e rodar um script no banco para
alterar as tabelas, se quiser pode rodar o update com o hibernate na sua maquina e
copiar o sql do console e so colocar esses atributos no arquivo de configuração do hibernate
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>