Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package ru.ntik.homedb2;
- import java.util.Properties;
- import javax.persistence.EntityManagerFactory;
- import javax.sql.DataSource;
- import org.apache.commons.dbcp2.BasicDataSource;
- import org.hibernate.SessionFactory;
- import org.hibernate.dialect.PostgreSQL92Dialect;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.ComponentScans;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.PropertySource;
- import org.springframework.core.env.Environment;
- import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
- import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import org.springframework.orm.hibernate5.HibernateTransactionManager;
- import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.PlatformTransactionManager;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import org.hibernate.cache.*;
- import org.hibernate.dialect.PostgreSQL9Dialect;
- import ru.ntik.Core.ConfigReader;
- /**
- *
- * @author test1
- */
- @Configuration
- @EnableTransactionManagement
- @PropertySource({"classpath:db.properties"})
- @ComponentScans(value = {
- @ComponentScan("ru.ntik.*"),
- @ComponentScan("ru.ntik.entities"),
- @ComponentScan("ru.ntik.repository")
- })
- @EnableJpaRepositories(basePackages = "ru.ntik")//, entityManagerFactoryRef = "sessionFactory")
- public class PersistenceJPAConfig {
- @Autowired
- private Environment env;
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws Exception {
- HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- vendorAdapter.setGenerateDdl(false);
- LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
- entityManagerFactoryBean.setDataSource(restDataSource());
- //entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistence.class);
- entityManagerFactoryBean.setPackagesToScan("ru.ntik.entities");
- entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
- entityManagerFactoryBean.setJpaProperties(getHibernateProperties());
- return entityManagerFactoryBean;
- }
- /*
- @Bean
- public LocalSessionFactoryBean sessionFactory() {
- LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
- factoryBean.setDataSource(restDataSource());
- factoryBean.setPackagesToScan("ru.ntik.entities");
- Properties props = new Properties();
- props.put("hibernate.show_sql", true);//env.getProperty("hibernate.show_sql"));
- // props.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- props.put("hibernate.dialect", PostgreSQL94Dialect.class.getName());
- props.put("hibernate.dbcp.validationQuery", "select 1");
- factoryBean.setHibernateProperties(props);
- factoryBean.setAnnotatedClasses(Product.class);
- return factoryBean;
- }
- */
- @Bean
- public BasicDataSource restDataSource() throws Exception {
- //String ipDB = ConfigReader.gerProperties();
- //String p = ConfigReader.gerPass();
- //System.out.println(ipDB);
- BasicDataSource dataSource = new BasicDataSource();
- //DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(env.getProperty("db.driver"));
- //dataSource.setUrl("jdbc:postgresql://" + ipDB + "/feedback_db"); //#####
- dataSource.setUrl(env.getProperty("db.url"));
- dataSource.setUsername(env.getProperty("db.username"));
- dataSource.setPassword(env.getProperty("db.password"));
- //dataSource.setPassword(p);
- dataSource.setTestOnBorrow(false);
- dataSource.setValidationQuery("select 1");
- Properties configProps = new Properties();
- configProps.put("db.validationQuery", "SELECT 1");
- configProps.put("db.testOnBorrow", true);
- configProps.put("testWhileIdle", true);
- // dataSource.setConnectionProperties(configProps);
- return dataSource;
- }
- @Bean
- @Autowired
- public PlatformTransactionManager transactionManager() throws Exception {
- JpaTransactionManager txJPA = new JpaTransactionManager();
- // HibernateTransactionManager txManager
- // = new HibernateTransactionManager();
- // txManager.setSessionFactory(sessionFactory);
- // txJPA.setEntityManagerFactory(sessionFactory);
- txJPA.setEntityManagerFactory(entityManagerFactory().getObject());
- return txJPA;
- // return txManager;
- }
- @Bean
- public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
- private Properties getHibernateProperties() {
- Properties properties = new Properties();
- properties.put("hibernate.dialect", PostgreSQL9Dialect.class.getName());//env.getRequiredProperty(PROP_HIBERNATE_DIALECT));
- properties.put("hibernate.show_sql", true);//env.getRequiredProperty(PROP_HIBERNATE_SHOW_SQL));
- // properties.put("hibernate.hbm2ddl.auto", false);//env.getRequiredProperty(PROP_HIBERNATE_HBM2DDL_AUTO));
- //properties.put("hibernate.cache.provider_class", "net.sf.ehcache.hibernate.SingletonEhCacheProvider");
- //properties.put("hibernate.cache.region.factory_class", "net.sf.ehcache.hibernate.EhCacheRegionFactory");
- properties.put("hibernate.cache.provider_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
- properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory");
- properties.put("hibernate.cache.use_second_level_cache", true);
- return properties;
- }
- /*Properties hibernateProperties() {
- return new Properties() {
- {
- setProperty("hibernate.hbm2ddl.auto",
- env.getProperty("hibernate.hbm2ddl.auto"));
- setProperty("hibernate.dialect",
- env.getProperty("hibernate.dialect"));
- setProperty("hibernate.globally_quoted_identifiers",
- "true");
- }
- };
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement