1
resposta

Hibernate 5.4: Como fazer o ExportSchema para criar e atualizar as tabelas

Antes do Hibernate 5 era possível atualizar o Schema com o seguinte código:

public static void main(String[] args) {
    Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
    SchemaUpdate se = new SchemaUpdate(cfg);
    se.execute(true, true);
}

Alguém sabe como fazer agora?

1 resposta

Olá Jean! Tudo bem?

Peço desculpas pela demora no retorno a sua mensagem.

Com o Hibernate 5.4, a forma de realizar o ExportSchema para criar e atualizar as tabelas mudou um pouco. Agora, você pode fazer isso utilizando a classe SchemaExport.

Aqui está um exemplo de como você pode fazer isso:

public static void main(String[] args) {
    StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
        .configure("hibernate.cfg.xml")
        .build();

    MetadataSources metadataSources = new MetadataSources(registry);
    Metadata metadata = metadataSources.buildMetadata();

    SchemaExport schemaExport = new SchemaExport();
    schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata);

    StandardServiceRegistryBuilder.destroy(registry);
}

Neste exemplo, estamos utilizando o StandardServiceRegistryBuilder para criar o registro de serviço a partir do arquivo de configuração hibernate.cfg.xml. Em seguida, utilizamos o MetadataSources para construir o metadados a partir do registro de serviço.

Depois disso, criamos uma instância do SchemaExport e chamamos o método create passando o conjunto de TargetType.DATABASE e o metadados. Isso irá criar ou atualizar as tabelas no banco de dados conforme as entidades mapeadas.

Lembre-se de substituir "hibernate.cfg.xml" pelo caminho correto do seu arquivo de configuração.

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