2012-05-17 12 views
20

Jaka jest wartość domyślnaHibernate domyślnie hbm2ddl.auto

hibernate.hbm2ddl.auto 

w hibernacji mapowanie plików cfg

to możliwe, aby usunąć

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

tego mapowania z pliku konfiguracyjnego

, jeśli usunę tę właściwość, niezależnie od tego, czy wpłynie ona na moją DB

???

Odpowiedz

19

Automatycznie sprawdza poprawność lub eksportuje plik DDL schematu do bazy danych po utworzeniu właściwości SessionFactory. Dzięki create-drop schemat bazy danych zostanie usunięty, gdy obiekt SessionFactory zostanie jawnie zamknięty.

validate | update | create | create-drop 
  • validate- istniejącego schematu
  • update tylko zaktualizować schematu raz utworzony
  • Create- tworzenia schematu każdym razem
+0

Przypuszczam, że downwizor zareagował na fakt, że jest to dosłownie z dokumentacji hibernacji. Widziałem, jak to może wywołać negatywną reakcję, choć nie przeszkadza mi to. – chad

+3

Nie odczytałem i nie odpowiedziałem na pytanie (tak jak zrobiło to rparree): co się stanie, gdy nie określisz wartości? – Jollymorphic

+0

jako @Jollymorphic sais, pytanie brzmi: co się stanie, jeśli nie podasz wartości? – user2447161

19

Po prostu pomijam hibernate.hbm2ddl.auto domyślnie Hibernate nie robi nic.

Już zadane w SO. link

31

który jest naprawdę odpowiedź: nie walidacji, no aktualizacja, no tworzenie i n o upuszczanie ma miejsce, gdy pominięto ustawienie w konfiguracji. Kod źródłowy hibernacji to najlepsza dokumentacja dotycząca 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); 
} 
+11

Bez uczciwego używania kodu źródłowego, aby dowiedzieć się, co dzieje się wewnątrz ... ;-) – HDave