Как интегрировать LiquiBase + Spring + Hibernate без использования hibernate.xml-файл конфигурации


Я уже прочитал много постов, касающихся интеграции между LiquiBase, Spring и Hibernate, но ни один из них не относится к моей ситуации witch is:

Я начинаю новый проект, который использует Spring и Hibernate, поэтому я искал способ управлять изменениями базы данных в течение срока действия проекта. Сначала я начал использовать hbm2ddl, но потом понял, что люди говорят, что это не очень хорошая идея в производственных средах, поэтому я пришел к выводу, что LiquiBase - это путь (так что Я думаю).

Проблема в том, что я не использую спящий режим.XML config file (и все примеры, которые я нашел с помощью LiquiBase, используют hibernate.xml), так как я использую аннотации java в моих классах POJO / DB, и моя конфигурация hibernate сделана следующим образом

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() throws ClassNotFoundException
{
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();

    entityManagerFactoryBean.setDataSource(dataSource());
    entityManagerFactoryBean.setPackagesToScan(environment.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));
    entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistence.class);

    Properties jpaProterties = new Properties();
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_DIALECT, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT));
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_FORMAT_SQL, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_FORMAT_SQL));
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_NAMING_STRATEGY, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_NAMING_STRATEGY));
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO));

    entityManagerFactoryBean.setJpaProperties(jpaProterties);

    return entityManagerFactoryBean;
}

Я также нашел сообщения 2-летней давности, в которых говорилось, что эта опция будет доступна только в версии 2.0 (текущей), и мне было интересно, реализована ли она уже. Если да,то как я могу использовать его в сценарии ANT?

I необходимо создать исходную базу данных DDL и следующие журналы изменений базы данных и импортировать их в производственную базу данных.

EDIT: я использую:

Liquibase 2.0.5

Liquibase Hibernate 2.0.0

Гибернация 4.1.4

Пружина 3.1.1

Весенние данные JPA 1.1.1

1 8

1 ответ:

Вы смотрели на http://www.liquibase.org/documentation/spring.html ?

Он упоминает источник данных и не спящий режим.XML.

Для начальной генерации можно использовать режим командной строки и generateChangeLog.

См. http://www.liquibase.org/documentation/command_line.html .

Вот минимальный hibernate.xfg.xml, который вам понадобится:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
                "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="entityManagerFactoryBean">
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3307/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
    </session-factory>
</hibernate-configuration>