Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableTransactionManagement
- @EnableJpaRepositories("<where_repos_are_found>")
- public class DatabaseConfiguration {
- private static final String[] PACKAGES_TO_SCAN = { "<packages_locations>" };
- private static final String PROPERTY_NAME_DATABASE_PASSWORD = "spring.datasource.password";
- private static final String PROPERTY_NAME_DATABASE_URL = "spring.datasource.url";
- private static final String PROPERTY_NAME_DATABASE_USERNAME = "spring.datasource.username";
- private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect";
- private static final String PROPERTY_NAME_HIBERNATE_DATABASE_DRIVER = "hibernate.connection.driver_class";
- private static final String PROPERTY_NAME_HIBERNATE_DDL = "hibernate.hbm2ddl.auto";
- private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "hibernate.show_sql";
- private static final String PROPERTY_NAME_HIBERNATE_FORMAT_SQL = "hibernate.format_sql";
- private static final String PROPERTY_NAME_HIBERNATE_USE_SQL_COMMENTS = "hibernate.use_sql_comments";
- private Environment env;
- @Autowired
- public DatabaseConfiguration(Environment env) { this.env = env; }
- @Bean
- public DataSource getDatasource() {
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
- dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
- dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));
- return dataSource;
- }
- private Properties getHibernateProperties() {
- Properties properties = new Properties();
- properties.put(PROPERTY_NAME_HIBERNATE_DATABASE_DRIVER, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DATABASE_DRIVER));
- properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, env.getProperty(PROPERTY_NAME_HIBERNATE_DIALECT));
- properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, env.getProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));
- properties.put(PROPERTY_NAME_HIBERNATE_FORMAT_SQL, env.getProperty(PROPERTY_NAME_HIBERNATE_FORMAT_SQL));
- properties.put(PROPERTY_NAME_HIBERNATE_USE_SQL_COMMENTS, env.getProperty(PROPERTY_NAME_HIBERNATE_USE_SQL_COMMENTS));
- properties.put(PROPERTY_NAME_HIBERNATE_DDL, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DDL));
- return properties;
- }
- @Bean(name = "entityManagerFactory")
- public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {
- LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
- entityManagerFactoryBean.setDataSource(getDatasource());
- entityManagerFactoryBean.setPackagesToScan(PACKAGES_TO_SCAN);
- JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
- entityManagerFactoryBean.setJpaProperties(getHibernateProperties());
- return entityManagerFactoryBean;
- }
- @Bean
- public JpaTransactionManager transactionManager() {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactoryBean().getObject());
- return transactionManager;
- }
- }
- hibernate.hbm2ddl.auto=create
- hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
- hibernate.show_sql=true
- hibernate.format_sql=true
- hibernate.use_sql_comments=true
- hibernate.connection.driver_class=com.mysql.jdbc.Driver
Add Comment
Please, Sign In to add comment