【问题标题】:New way to drop and recreate database schema in Spring?在 Spring 中删除和重新创建数据库模式的新方法?
【发布时间】:2011-12-12 15:06:21
【问题描述】:

对于某些单元测试,我会在每次测试后删除并重新创建整个数据库架构。它并不完美,但它有效。但是,当我从 Spring 3.0.6 升级到 3.1.0.RC2 以获得对 Hibernate 4 的支持时,我使用的方法被删除了。

旧代码:

@BeforeMethod
public void setupSchema() {
    LocalSessionFactoryBean session = (LocalSessionFactoryBean) context.getBean("&sessionFactory");
    session.dropDatabaseSchema();
    session.createDatabaseSchema();
}

我应该改用什么来在 3.1.0.RC2 中重新创建数据库架构?

编辑:请注意,这是针对 hibernate4 LocalSessionFactoryBean,而不是针对 hibernate3 的

【问题讨论】:

    标签: java spring


    【解决方案1】:

    对于那些感兴趣的人,今天解决了这个问题。本质上只是使用 SchemaExport

    @BeforeMethod
    public void setupSchema() {
        LocalSessionFactoryBean session = (LocalSessionFactoryBean) context.getBean("&sessionFactory");
        SchemaExport export = new SchemaExport(session.getConfiguration());
        export.drop(false, true);
        export.create(false, true);
    }
    

    希望这对某人有所帮助

    【讨论】:

      【解决方案2】:

      看看这个:

      JavaDoc for 3.1.0 RC2

      这个方法还是存在的。但是,还要注意在 java doc 中有两个 LocalSessionFactoryBean(见左侧滚动列表)!!

      [编辑] 如下所述,这些方法在 hibernate 4 中已被弃用

      【讨论】:

      • 实际上,如果你仔细看的话,有一个用于hibernate3,一个用于hibernate4。我正在使用一个用于hibernate4。我更新了问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2016-12-24
      • 2017-04-07
      • 2017-06-17
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      相关资源
      最近更新 更多