2015-09-27 69 views
1

我有什麼地方最屬性是使用註釋設置好的一個Spring + Hibernate的基礎的應用。自動創建使用Spring /更新表和Hibernate

的AppConfig類樣子:

//package declarations and imports 

@EnableWebMvc 
@Configuration 
@ComponentScan({ "com.package.subpackage.*" }) 
@Import({ SecurityConfig.class }) 
public class AppConfig { 

    @Bean(name = "dataSource") 
    public DriverManagerDataSource dataSource() { 
     DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); 
     driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
     driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/fur"); 
     Properties prop = new Properties(); 
     prop.setProperty("hibernate.hbm2ddl.auto", "create"); 
     driverManagerDataSource.setConnectionProperties(prop); 
     driverManagerDataSource.setUsername("root"); 
     driverManagerDataSource.setPassword(""); 
     return driverManagerDataSource; 
    } 

    //other methods... 

} 

問題我是用我的Java類相關聯的表在我的數據庫不會自動創建。

我不添加我的課的例子因爲我認爲它在配置的問題,但請讓我知道是否需要。

+1

要設置包含'數據源,不知道任何有關對hibernate.hmb2ddl.auto'屬性ORM層如Hibernate。你應該將這些屬性傳遞給LocalSessionFactoryBuilder bean等。 –

+0

我該怎麼做? –

回答

1

您正在設置數據源上包含hibernate.hmb2ddl.auto的屬性,該數據源對ORM層(如Hibernate)沒有任何瞭解。您應該將這些屬性傳遞給LocalSessionFactoryBuilder bean或諸如此類。

您可以使用類似的配置來建立休眠與所需的屬性:

@Configuration 
public class DatabaseConfig { 

    // Data source, transaction manager, ... bean definitions omitted 

    @Bean 
    public LocalSessionFactoryBuilder sessionFactoryBuilder() { 
     LocalSessionFactoryBuilder sfb = new LocalSessionFactoryBuilder(dataSource()); 
     sfb.scanPackages("com.example.app.model"); 
     // Hibernate/JPA properties 
     Properties properties = new Properties(); 
     properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); 
     properties.put("hibernate.hbm2ddl.auto", "create"); 
     sfb.addProperties(properties); 
     return sfb; 
    } 

    @Bean 
    public SessionFactory sessionFactory() { 
     return sessionFactoryBuilder().buildSessionFactory(); 
    } 

} 
+0

優秀,與我使用它的工作,使用您的評論類似的方法。非常感謝你的幫助! –

相關問題