Uma equipe de desenvolvimento está utilizando Spring Boot pa...

Próximas questões
Com base no mesmo assunto
Q3290576 Programação
Uma equipe de desenvolvimento está utilizando Spring Boot para criar uma API RESTful. Durante os testes, observaram que a aplicação demora a inicializar, principalmente devido à configuração do banco de dados. Para melhorar o tempo de inicialização, decidiram desabilitar a criação automática do esquema de banco de dados ao iniciar a aplicação. A configuração, no application.properties, que desabilita a criação automática do esquema de banco de dados pelo Spring Boot é a  
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

```html

Alternativa Correta: A - spring.jpa.hibernate.ddl-auto=none

Tema Central: A questão trata da configuração do Spring Boot para desabilitar a criação automática do esquema do banco de dados. Esse tema é crucial para desenvolvedores que buscam otimizar o tempo de inicialização de aplicações, algo comum no cargo de Analista Judiciário - Suporte em TI.

Resumo Teórico: O Spring Boot é um framework que simplifica a criação de aplicações Java, e uma de suas funcionalidades é gerenciar o esquema do banco de dados automaticamente. No entanto, em ambientes de produção, pode ser desejável desativar essa funcionalidade para reduzir o tempo de inicialização e evitar alterações indesejadas no banco de dados. Essa configuração é geralmente realizada no arquivo application.properties.

Justificativa da Alternativa Correta: A configuração spring.jpa.hibernate.ddl-auto=none diz ao Spring Boot para não gerar nem validar o esquema do banco de dados no início. Isso é útil quando não se deseja que o Hibernate interfira na estrutura do banco de dados, especialmente em ambientes de produção.

Análise das Alternativas Incorretas:

  • B - spring.datasource.database-auto-=false: Esta alternativa é inválida. Não existe tal propriedade no Spring Boot para controlar a criação do esquema do banco de dados.
  • C - spring.jpa.db-sql=disable: Essa configuração não é reconhecida pelo Spring Boot para o propósito mencionado. Não existe uma propriedade padrão com este nome.
  • D - spring.jpa.properties.hibernate.db-auto=disable: Esta propriedade está incorretamente formada. Não corresponde a uma configuração válida para controlar o comportamento do Hibernate.
  • E - spring.jpa.create-database-init=false: Assim como as outras, essa propriedade não é reconhecida pelo Spring Boot e não controla o ddl-auto.

Quando abordar questões desse tipo, é essencial conhecer as propriedades de configuração do Spring Boot e suas finalidades. Recomendo sempre consultar a documentação oficial do Spring Boot para uma referência detalhada.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

```

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito Letra A

Tem que lembrar que o hbm2ddl.auto (do Hibernate) tem a ver com Schemas, e como a questão diz "criação automática do esquema de banco de dados", fui procurar a opção que mais tem a ver com essa propriedade.

Olá! Para desabilitar a criação automática do esquema de banco de dados pelo Spring Boot, a configuração correta no arquivo application.properties é (A) spring.jpa.hibernate.ddl-auto=none.

Entendendo o porquê:

A propriedade spring.jpa.hibernate.ddl-auto é uma configuração do Hibernate (o JPA provider padrão do Spring Boot) que controla a geração e a atualização do esquema do banco de dados durante a inicialização da aplicação. Os valores possíveis para essa propriedade incluem:

* none: Não realiza nenhuma ação no esquema do banco de dados. É a opção para desabilitar a criação ou atualização automática.

* validate: Valida o esquema do banco de dados com os mapeamentos das entidades. Não realiza nenhuma alteração.

* update: Atualiza o esquema do banco de dados para corresponder aos mapeamentos das entidades. Não exclui tabelas ou colunas.

* create: Exclui o esquema existente e cria um novo com base nos mapeamentos das entidades. Útil para testes.

* create-drop: Semelhante a create, mas também exclui o esquema do banco de dados quando a sessão do EntityManagerFactory é fechada. Útil para testes.

Ao definir spring.jpa.hibernate.ddl-auto=none, você instrui o Hibernate a não realizar nenhuma operação automática no esquema do banco de dados durante a inicialização da sua aplicação Spring Boot, o que contribuirá para um tempo de inicialização mais rápido, especialmente se a configuração do banco de dados for a causa da lentidão.

Analisando as outras opções:

* (B) spring.datasource.database-auto-=false: Esta propriedade não é uma configuração padrão do Spring Boot para controlar a criação automática do esquema pelo JPA/Hibernate. Geralmente, as configurações relacionadas ao esquema estão dentro do escopo do JPA/Hibernate.

* (C) spring.jpa.db-sql=disable: Esta propriedade não é uma configuração padrão do Spring Boot. Pode haver configurações relacionadas à exibição de SQL gerado pelo Hibernate, mas não para desabilitar a criação do esquema.

* (D) spring.jpa.properties.hibernate.db-auto=disable: A forma correta de configurar propriedades específicas do Hibernate dentro do Spring Boot é usando spring.jpa.properties.hibernate.<propriedade_do_hibernate>. No entanto, db-auto não é uma propriedade padrão do Hibernate para controlar a criação do esquema. A propriedade correta é hibernate.hbm2ddl.auto. Portanto, a configuração correta seria spring.jpa.properties.hibernate.hbm2ddl.auto=none.

* (E) spring.jpa.create-database-init=false: Esta propriedade está relacionada à inicialização do banco de dados usando scripts schema.sql e data.sql que podem estar presentes no classpath, e não diretamente com a criação automática do esquema baseada nas entidades JPA pelo Hibernate.

Portanto, a configuração mais adequada e correta para desabilitar a criação automática do esquema de banco de dados pelo Spring Boot é spring.jpa.hibernate.ddl-auto=none.

Fonte: Gemini

A alternativa correta é a letra A:

  • A. spring.jpa.hibernate.ddl-auto=none

Essa propriedade define o comportamento do Hibernate (usado pelo Spring Data JPA) em relação à geração automática do schema (estrutura) do banco de dados.

Os valores possíveis para spring.jpa.hibernate.ddl-auto incluem:

  • none: não faz nenhuma ação de criação ou atualização de schema.
  • update: atualiza o schema para coincidir com as entidades.
  • create: cria o schema a cada inicialização (apaga e recria).
  • create-drop: cria ao iniciar, e apaga ao finalizar.
  • validate: valida o schema, mas não faz alterações.

By Futuro DEV Estável.

  • A equipe quer desabilitar a criação automática do esquema de banco de dados durante a inicialização da aplicação Spring Boot.
  • Isso é controlado pelo Hibernate, através da propriedade no .

A configuração:

significa:

  • : O Hibernate não faz nada com o schema (nem cria, nem atualiza, nem valida).

Outros valores possíveis para são:

ValorComportamentoCria o schema a cada inicializaçãoCria ao iniciar e apaga ao encerrarAtualiza o schema automaticamenteValida o schema, mas não alteraNão faz nada (é o desejado aqui) ✅

  • Correta.
  • É exatamente a propriedade que desativa a criação automática do esquema.
  • ➡️ CERTA
  • Propriedade inexistente.
  • Tem erro de sintaxe (), não pertence à configuração padrão do Spring.
  • ➡️ ERRADA
  • Propriedade inexistente.
  • não existe.
  • ➡️ ERRADA
  • Parece uma tentativa incorreta de acessar propriedades internas do Hibernate.
  • não existe.
  • ➡️ ERRADA
  • Existe uma propriedade parecida () para scripts, mas essa não controla o schema do JPA.
  • não é uma propriedade válida no contexto do JPA/Hibernate.
  • ➡️ ERRADA

Chat

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo