Kontaktní osoba:
Ing. Jiří Pinkas
Mobil: +420 774 912 047

Jak programově vygenerovat pomocí hbm2ddl DB schéma


publikováno: 11.5.2013

Pokud používáte Spring a Hibernate (pomocí JPA), pak můžete vygenerovat databázové schéma pomocí třídy SchemaExport následovně:

 

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:db-dev.xml")
public class SchemaExportTest {
@Autowired
private LocalContainerEntityManagerFactoryBean entityManagerFactory;
@SuppressWarnings("deprecation")
@Test
public void exportDatabaseSchema() {
PersistenceUnitInfo persistenceUnitInfo
= entityManagerFactory.getPersistenceUnitInfo();
Map<String, Object> jpaPropertyMap
= entityManagerFactory.getJpaPropertyMap(); Configuration configuration = new Ejb3Configuration()
.configure(persistenceUnitInfo, jpaPropertyMap)
.getHibernateConfiguration(); SchemaExport schema = new SchemaExport(configuration);
schema.setOutputFile("gen-schema.sql");
schema.create(false, false);
}
}

Poznámka 1: Konfigurace připojení do databáze je v souboru db-dev.xml, který je v classpath a používá se v něm třída LocalContainerEntityManagerFactoryBean.

Poznámka 2: Výsledný script se uloží do domovského adresáře projektu do souboru gen-schema.sql

Poznámka 3: Tento kód funguje pro Hibernate do verze 5 (která v době psaní tohoto článku doposud nevyšla. V této verzi Hibernate už nebude třída Ejb3Configuration, která se v tomto příkladě používá)



comments powered by Disqus


Reference

" Co dodat? Byl to super kurz. Pěkné pochopitelné příklady k vybrané problematice. Rychlost školitele optimální, vše se dalo pěkně stíhat. Pokud účastníkk nevěděl nebo udělal chybu a nevěděl, tak školitel " podrobnosti ...

Michal

" S kurzem jsem byl maximálně spokojen. Na přednášejícím bylo vidět, že ví o čem mluví a dokázal zaujmout, i v případě neporozumění ochotně pomohl a danému člověku problém osvětlil. Rozhodně " podrobnosti ...

Josef

Embedit

" Java kurz byl pro mě velmi přínosný. Jiří je skvělý školitel, který dělá přesně to, co ho baví a na přístupu to bylo každý den velmi znát. Školení bych doporučil " podrobnosti ...

Filip


Novinky

Dvoudenní školení Docker

Školení Docker povyrostlo na dvoudenní školení. více ...

Nové datum vydání Java 9: 21.9.2017

Mark Reinhold aktualizoval datum GA (General Availability) Java 9 na 21.9.2017. více ...

Juergen Hoeller v Brně (jeden z autorů Spring frameworku)! 15.3.2017

15.3.2017, 18:00, Brno, Smetanova 19. Nutná rezervace místa! více ...

Bilance Java školení 2016

Co se mi (ne)povedlo v roce 2016 a plány na rok 2017 více ...

Oracle se prý v roce 2017 zaměří na vynucení Java licencí a pokutování zákazníků

Jak nedostat od Oracle pokutu za komerční použití Javy? více ...

Java DB (Derby) a Visual VM nebudou součástí Java JDK 9

Změny v Java JDK 9 více ...