2016-09-23 49 views
1

我有一堆java POJO类。我以前用XML配置生成模式,但现在我使用注释,它不起作用。如何使用注释配置从实体生成数据库模式?

@Bean 
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, Environment env) { 
     LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); 
     entityManagerFactoryBean.setDataSource(dataSource); 
     entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); 
     entityManagerFactoryBean.setPackagesToScan("com.library.entities"); 
     entityManagerFactoryBean.setJpaProperties(hibernateProperties()); 

     return entityManagerFactoryBean; 
    } 

    @Bean 
    public DataSource dataSource() { 
     DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
     dataSource.setUrl("jdbc:mysql://localhost/library"); 
     dataSource.setUsername("root"); 
     dataSource.setPassword("root"); 


     return dataSource; 
    } 

    final Properties hibernateProperties() { 
     final Properties hibernateProperties = new Properties(); 

     hibernateProperties.setProperty("spring.jpa.database", "MYSQL"); 
     hibernateProperties.setProperty("spring.jpa.show-sql", "true"); 
     hibernateProperties.setProperty("spring.jpa.hibernate.ddl", "create"); 

     return hibernateProperties; 
    } 

我的属性在entityManagerFactory中设置。有用的记录器信息:

LocalContainerEntityManagerFactoryBean:462 - Closing JPA EntityManagerFactory for persistence unit 'default' 

我没有hibernate.properties文件。在注释配置中是否需要此文件?

INFO Environment:239 - HHH000206: hibernate.properties not found 

回答

4

属性的键是错误的。 当您在application.properties文件中定义配置时,像spring.jpa.*这样的键用于Spring Boot。

查看AvailableSettings界面查看可用的有效密钥。

所以密钥必须:

hibernateProperties.setProperty("hibernate.show_sql", "true"); 
hibernateProperties.setProperty("hibernate.hbm2ddl.auto", "create"); 

OR

hibernateProperties.setProperty(AvailableSettings.SHOW_SQL, "true"); 
hibernateProperties.setProperty(AvailableSettings.HBM2DDL_AUTO, "create"); 
+0

感谢。它现在正常工作! –

相关问题