Avatar ·

Quais valores pode assumir hibernate.hbm2ddl.auto e o que eles fazem?

Olá a todos! Sou um desenvolvedor Java iniciante e, durante o estudo do Hibernate, me deparei com o parâmetro de configuração `hibernate.hbm2ddl.auto`. Sei que ele é responsável pelo gerenciamento do esquema do banco de dados, mas não consigo entender completamente quais valores podem ser atribuídos a ele e como cada um afeta as tabelas.\n\nAqui está um exemplo do meu `application.properties`:\n\n```properties\nspring.jpa.hibernate.ddl-auto=update\n```\n\nAtualmente estou usando `update`, e parece funcionar: as tabelas são criadas automaticamente. Mas vi que em diferentes projetos usam `create`, `validate`, `none`. O que eles significam?\n\nEstou especialmente preocupado com o seguinte:\n1. Se eu usar `create`, perderei todos os dados a cada execução?\n2. E `validate` é apenas uma verificação? O que acontece se a tabela não corresponder à entidade?