How to integrate LiquiBase + Spring + Hibernate without using hibernate.xml configuration file?

I already read a lot of posts regarding integration between LiquiBase, Spring and Hibernate, but none of them apply to my situation witch is:

I’m starting a new project that uses Spring and Hibernate, so I was looking into a way to manage the database changes during the project lifetime. First I started using hbm2ddl but then realized that people say that this isn’t a very good idea in production environments, so I came to the conclusion that LiquiBase was the way to go (so I think).

The problem is that I’m not using a hibernate.xml config file (and all the examples I found using LiquiBase use a hibernate.xml), since I’m using java annotations in my POJO/DB classes and my hibernate configuration is made like this

    @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;
    }


I also found posts from 2 years ago saying that this option would only be available in version 2.0 (the current one), and I was wondering if this is already implemented. If so, how do I use it in a ANT script?

I need to create the original database DDL and the following database change logs and import them into the production DB.

EDIT:
I’m using:
Liquibase 2.0.5
Liquibase Hibernate 2.0.0
Hibernate 4.1.4
Spring 3.1.1
Spring Data JPA 1.1.1

You have to use hibernate.xml or persistence unit (“persistence:…” url) with liquibase-hibernate plugin. But you should fork and fix it.


liquibase.ext.hibernate.snapshot.HibernateDatabaseSnapshotGenerator#createSnapshot creates hibernate configuration from file. 

  1. https://github.com/SergeyVasilyev/liquibase-hibernate (j7_hb4 branch)

You have to use hibernate.xml with liquibase-hibernate plugin. But you should fork and fix it.


liquibase.ext.hibernate.snapshot.HibernateDatabaseSnapshotGenerator#createSnapshot creates hibernate configuration from file. 

  1. https://github.com/SergeyVasilyev/liquibase-hibernate (j7_hb4 branch)

Hi,


I have one template project make use of Spring, Hibernate, and Liquibase, but is using xml configuration for Spring, you can look at https://github.com/paukiatwee/webapp-bootstrap