У меня есть проект Java, в котором я использую JPA для сохранения. Теперь я хочу интегрировать LiquiBase в свой проект, но я не знаю, как изменить порядок выполнения JPA/Liquibase.Liquibase + JPA: Порядок выполнения
Для ясности: До сих пор моя persistence.xml выглядит следующим образом:
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.url" value=.../>
<property name="javax.persistence.jdbc.user" value=.../>
<property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
Теперь я попытался установить:
<property name="eclipselink.ddl-generation" value="none"/>
так что LiquiBase обрабатывает все базы данных-материал.
Но теперь, когда я запускаю свой код, JPA выдает ошибку, потому что некоторые таблицы отсутствуют, хотя эти таблицы должны быть созданы Liquibase, что заставляет меня думать, что JPA работает до ликбазы.
Как изменить этот заказ? До сих LiquiBase не выполняется в коде с помощью этой строки:
java.sql.Connection connection = openConnection(); //your openConnection logic here
Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection));
Liquibase liquibase = new liquibase.Liquibase("path/to/changelog.xml", new ClassLoaderResourceAccessor(), database);
liquibase.update(new Contexts(), new LabelExpression());
Я где-то читал, что это может быть достигнуто с помощью LiquiBase Servlet слушателя, но требует источника данных базы данных, и я не знаю, как получить, что ,
Liquibase сам работает нормально.
Это приложение Java EE или Spring? – Puce
Его проект Java EE :) – Crucios