Gon*_*oso 8 ant spring annotations hibernate liquibase
我已经阅读了很多有关LiquiBase,Spring和Hibernate之间集成的帖子,但是没有一个适用于我的情况.
我正在开始一个使用Spring和Hibernate的新项目,因此我正在寻找一种在项目生命周期内管理数据库更改的方法.首先我开始使用hbm2ddl然后意识到人们说这在生产环境中不是一个好主意,所以我得出结论LiquiBase是要走的路(所以我认为).
问题是我没有使用hibernate.xml配置文件(我使用LiquiBase找到的所有示例都使用了hibernate.xml),因为我在我的POJO/DB类中使用java注释并且我的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;
}
Run Code Online (Sandbox Code Playgroud)
我还发现2年前的帖子说这个选项只能在版本2.0(当前版本)中使用,我想知道这是否已经实现.如果是这样,我如何在ANT脚本中使用它?
我需要创建原始数据库DDL和以下数据库更改日志,并将它们导入生产数据库.
编辑:我正在使用:
Liquibase 2.0.5
Liquibase Hibernate 2.0.0
Hibernate 4.1.4
春季3.1.1
Spring Data JPA 1.1.1
你看过http://www.liquibase.org/documentation/spring.html吗?
它提到了 dataSource 而没有提到 hibernate.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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12473 次 |
| 最近记录: |