在Spring Boot中以编程方式设置hibernate.ddl-auto

8

我在一个非Web应用程序中使用Spring Boot和Data JPA。除数据源外,我使用默认配置:

private static final String dataSourceUrl = "jdbc:h2:./Database;DB_CLOSE_ON_EXIT=FALSE";
@Bean
public DataSource dataSource() {
    return DataSourceBuilder.create().url(dataSourceUrl).username("user").password("pwd").build();
}

我该如何以编程方式设置spring.jpa.hibernate.ddl-auto属性?

2
也许这可以帮助你:http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-one-configuration/ - Jens
1
很有帮助,谢谢 :) - Semaphor
1个回答

19

添加以下bean似乎可以完成工作(感谢Jens的评论):

  @Bean
  public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
    em.setDataSource(dataSource);
    em.setPackagesToScan(new String[] { "packages.to.scan" });

    JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    em.setJpaVendorAdapter(vendorAdapter);

    Properties properties = new Properties();
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
    properties.setProperty("hibernate.hbm2ddl.auto", "update");
    em.setJpaProperties(properties);

    return em;
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接