Advertisement
bvn13

Untitled

Jun 30th, 2018
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.57 KB | None | 0 0
  1. @Configuration
  2. public class JpaConfig implements TransactionManagementConfigurer {
  3.  
  4.     @Value("${spring.datasource.driverClassName}")
  5.     private String driver;
  6.     @Value("${spring.datasource.url}")
  7.     private String url;
  8.     @Value("${spring.datasource.username}")
  9.     private String username;
  10.     @Value("${spring.datasource.password}")
  11.     private String password;
  12.  
  13.     @Value("${spring.jpa.properties.hibernate.dialect}")
  14.     private String dialect;
  15.     @Value("${spring.jpa.hibernate.ddl-auto}")
  16.     private String ddlAuto;
  17.     @Value("${spring.jpa.show-sql}")
  18.     private Boolean showSql;
  19.     @Value("${spring.jpa.properties.hibernate.format_sql}")
  20.     private Boolean formatSql;
  21.  
  22.     @Bean
  23.     public DataSource configureDataSource() {
  24.         HikariConfig config = new HikariConfig();
  25.         config.setDriverClassName(driver);
  26.         config.setJdbcUrl(url);
  27.         config.setUsername(username);
  28.         config.setPassword(password);
  29.  
  30.         config.addDataSourceProperty("useUnicode", "true");
  31.         config.addDataSourceProperty("characterEncoding", "utf8");
  32.         config.addDataSourceProperty("cachePrepStmts", "true");
  33.         config.addDataSourceProperty("prepStmtCacheSize", "250");
  34.         config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
  35.         config.addDataSourceProperty("useServerPrepStmts", "true");
  36.  
  37.         return new HikariDataSource(config);
  38.     }
  39.  
  40.     @Bean
  41.     public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
  42.         LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
  43.         entityManagerFactoryBean.setDataSource(configureDataSource());
  44.         entityManagerFactoryBean.setPackagesToScan("ru.bvn13.pivdom.bot");
  45.         entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
  46.  
  47.         Properties jpaProperties = new Properties();
  48.         jpaProperties.put(org.hibernate.cfg.Environment.DIALECT, dialect);
  49.         jpaProperties.put(org.hibernate.cfg.Environment.HBM2DDL_AUTO, ddlAuto);
  50.         jpaProperties.put(org.hibernate.cfg.Environment.SHOW_SQL, showSql);
  51.         //jpaProperties.put(org.hibernate.cfg.Environment.USE_SQL_COMMENTS, useSqlComments);
  52.         jpaProperties.put(org.hibernate.cfg.Environment.FORMAT_SQL, formatSql);
  53.         entityManagerFactoryBean.setJpaProperties(jpaProperties);
  54.  
  55.         return entityManagerFactoryBean;
  56.     }
  57.  
  58.     @Bean(name = "transactionManager")
  59.     public PlatformTransactionManager annotationDrivenTransactionManager() {
  60.         return new JpaTransactionManager();
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement