web-dev-qa-db-fra.com

Hibernate hbm2ddl.auto valeur par défaut

Quelle est la valeur par défaut de

hibernate.hbm2ddl.auto

dans le mappage du fichier cfg en veille prolongée

est-il possible de supprimer

<property name="hibernate.hbm2ddl.auto">update</property>

ce mappage à partir du fichier de configuration

si je supprime cette propriété si elle affecte ma base de données

???

28
Anand K Nair

Valide ou exporte automatiquement le schéma DDL vers la base de données lors de la création de SessionFactory. Avec create-drop, le schéma de base de données sera supprimé lorsque SessionFactory sera fermé explicitement.

validate | update | create | create-drop
  • valider - schéma existant
  • mise à jour - ne mettez à jour votre schéma qu'une fois créé
  • créer - créer un schéma à chaque fois
19

C'est vraiment la réponse: no validation, no update, no creation et no drop se produit en omettant le à partir de votre configuration. Le code source hibernate est la meilleure documentation sur Hibernate:

// from org.hibernate.cfg.SettingsFactory line 332 (hibernate-core-3.6.7)      
String autoSchemaExport = properties.getProperty(Environment.HBM2DDL_AUTO);
if ( "validate".equals(autoSchemaExport) ) settings.setAutoValidateSchema(true);
if ( "update".equals(autoSchemaExport) ) settings.setAutoUpdateSchema(true);
if ( "create".equals(autoSchemaExport) ) settings.setAutoCreateSchema(true);
if ( "create-drop".equals(autoSchemaExport) ) {
  settings.setAutoCreateSchema(true);
  settings.setAutoDropSchema(true);
}
40
raphaëλ

Le fait d'omettre juste hibernate.hbm2ddl.auto par défaut pour Hibernate ne fait rien.

Déjà demandé en SO. link

21
Abhilash