2014-07-22 13 views
11

Chcę przetestować mój program za pomocą hsqldb. Aby utworzyć tabelę, używam hibernate.hbm2ddl.auto=create Ale otrzymuję wyjątek, ponieważ schematy zdefiniowane w klasach encji za pomocą adnotacji nie są tworzone przed utworzeniem tabel. Teraz szukam okazji do utworzenia schematów przed uruchomieniem hibernate.hbm2ddl.auto. Usunięcie schematów nie jest dla mnie okazją, ponieważ potrzebuję ich do mojego programu.Tworzenie schematu przed hbm2ddl

Mój problem jest prawie taki sam jak this. Różni się, że nie używam sprężyny, więc rozwiązanie nie działa dla mnie.

+0

@kamil Użyłem hsqldb DB, ale przełącza się H2 więc rozwiązanie działa. – johzi

Odpowiedz

5

Zakładając, że używasz bazy danych H2, możesz podać polecenie init do uruchomienia z adresem URL połączenia jdbc. Na przykład:

your.jdbc.url=jdbc:h2:mem:;DB_CLOSE_DELAY=-1;INIT=create schema IF NOT EXISTS your_schema 

Niestety, problem na hibernacji JIRA jest wciąż nierozwiązana https://hibernate.atlassian.net/browse/HHH-5665

+0

Dzięki za pomoc. Współpracował z javax.persistence.jdbc.url = jdbc: h2: mem: test:; DB_CLOSE_DELAY = -1; INIT = \\; runscript z '~/workspace/project/src/test/resources/sql/createschema.sql "; w sql tworzę wszystkie moje schematy – johzi