domingo, 10 de fevereiro de 2013

Como gerar automaticamente as tabelas do banco com o Hibernate

O Hibernate possui uma facilidade para criação das tabelas do banco de dados a partir das entidades definidas no modelo da aplicação, é a classe "SchemaExport".

Através dessa classe, pode-se gerar o script DDL para qualquer banco suportado pelo Hibernate, e configurado para ser utilizado por esse framework de persistência.

Segue abaixo um exemplo de uma possível forma de utilizar essa classe.

private void geraTabelas(){
    //AnnotationConfiguration cfg = new AnnotationConfiguration(); //deprecated
    Configuration cfg = new Configuration();
    //Entidades do modelo sendo adicionadas na configuração
    cfg.addAnnotatedClass(Vendas.class);
    cfg.addAnnotatedClass(Clientes.class);
       
    SchemaExport schemaExport = new SchemaExport(cfg);
    schemaExport.create(true, true);
}

O método "create" possui dois argumentos booleanos: o primeiro indica que deseja-se ver o código SQL de geração das tabelas, e o segundo se deseja-se executá-lo (pois pode-se querer apenas visualizar o SQL, para fazer adaptações nesse código ou executá-lo diretamente em um cliente de banco de dados).

Obs.: Lembrando que a versão 4 do Hibernate utiliza a classe "Configuration", ao invés da classe "AnnotationConfiguration", utilizada nas versões anteriores.

Uma questão importante é que, ao rodar esse método, o Hibernate vai fazer executar também um comando SQL "DROP TABLE" com os nomes das tabelas a serem criadas. Se a intenção é apenas atualizar as tabelas com novos campos (relacionados a novos atributos das classes que representam as entidades), deve-se utilizar a classe SchemaUpdate.

Nenhum comentário: