2013-04-24 59 views
0

我有一个要求,我想清除整个数据库表,而不是前进。JPA重置数据库休眠与SPRING MVC

我发现下面的解决方案在Hibernate中使用LocalSessionFactoryBean。

https://code.google.com/p/ormunit/source/browse/trunk/ormunit-hibernate/src/main/java/net/chrisrichardson/ormunit/hibernate/ResetDatabaseByRecreatingSchemaStrategy.java

但我使用JPA了Hibernate作为我有LocalContainerEntityManagerFactoryBean结果。

任何人都可以指导我,我怎么能实现类似的解决方案使用JPA超过休眠。

动机是重置数据库

+0

你要做到这一点在启动或运行时? – gkamal 2013-04-24 11:24:44

+0

您使用的是JPA的实现? – NimChimpsky 2013-04-24 15:14:43

+0

我想在运行时执行此操作 – 2013-04-25 04:53:09

回答

0

我用

的SchemaExport

来解决这个问题,

LocalContainerEntityManagerFactoryBean localSessionFactoryBean = getLocalSessionFactoryBean(applicationContext); 

     Configuration conf = new Ejb3Configuration().configure(
       localSessionFactoryBean.getPersistenceUnitInfo(), null) 
       .getHibernateConfiguration(); 
     SchemaExport export = new SchemaExport(conf, localSessionFactoryBean 
       .getDataSource().getConnection()); 
     export.create(true, true); 


public LocalContainerEntityManagerFactoryBean getLocalSessionFactoryBean(
      ApplicationContext applicationContext) { 

     return (LocalContainerEntityManagerFactoryBean) applicationContext 
       .getBean(LocalContainerEntityManagerFactoryBean.class); 
    } 
0

使用Hibernate,你可以设置<property name="hbm2ddl.auto">create</property>或创建降。您可以使用dbunit