Koziołek napisał(a)
To zależy. Hibernate, a ogólniej JPA (które z niego mocno czerpie), potrafi wygenerować bazę na podstawie struktury klas. Trzeba tylko odpowiednią flagę w konfiguracji ustawić i masz.
JPA tego nie ma, przeczytaj specyfikacje. To jest dodatek ktory tak sie sklada ze implementuje prawie kazdy prowider, ale kazdy inaczej, kazdy inaczej konfiguruje. Wiec mowic ze to jest cecha JPA to nieprawdziwa nieprawda.
Hibernate ma kilka sposobow bydowania aplikacji, jak jest napisane w Java Persistence in Action (Bernard, King), w tym 2 ponizsze:
a) top down - masz klasy, z nich budujesz schemat bazy (na poczatek wystarczy ten co tworzy hibernate, ale do produkcji powinien nad tym przysiasc ktos kompetentny - DBA)
b) bottom up - masz schemat (najprawdopodobniej z jakiejs aplikacji legacy ktorej nowa wersje chcesz zrobic), z niego generujesz sobie klasy mapujace, robisz jakiestam usprawnienia i poprawki
Dla nowych projektow zalecane jest top-down (model obiektowy najpierw, schemat pozniej na podstawie tego).