2017-09-16 2 views
0

Springブートでhibernateセッションファクトリを設定する方法を教えてください。私はユーザhbm.xmlマッピングファイルをしたいと思うし、クラスパスの場所を提供したい。私は、スプリングブートが私のためにセッションファクトリをピックアップして設定できる場所からデフォルトの場所を見つけることができませんでした。最終的に私は古風な方法でそれをやらなければなりません。私はBeanを明示的に作成しました。私は春のブートでエレガントな方法がなければならないと信じています。ご意見をお聞かせください。Hibernateマッピングファイルの場所とスプリングブート

答えて

0

次で休止状態のSessionFactoryを設定することができます - これは休止状態を設定するには、私のプロジェクトで使用するコードです

@Configuration 
@EnableTransactionManagement 
@ComponentScan({"com.yourPackageName"}) 
@PropertySource("classpath:application.properties") 
public class HibernateConfiguration { 

@Autowired 
Environment environment; 

@Bean 
public LocalSessionFactoryBean sessionFactory() { 
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); 
    sessionFactory.setDataSource(dataSource()); 
    sessionFactory.setPackagesToScan(new String[]{"com.yourPackageName"}); 
    sessionFactory.setHibernateProperties(hibernateProperties()); 
    return sessionFactory; 
} 

@Bean 
public DataSource dataSource() { 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName(environment.getRequiredProperty("database.driverClass")); 
    dataSource.setUrl(environment.getRequiredProperty("database.url")); 
    dataSource.setUsername(environment.getRequiredProperty("database.username")); 
    dataSource.setPassword(environment.getRequiredProperty("database.password")); 
    return dataSource; 
} 

private Properties hibernateProperties() { 
    Properties properties = new Properties(); 
    properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect")); 
    properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql")); 
    properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql")); 
    properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto")); 
    return properties; 
} 

関連する問題