| @ -0,0 +1,73 @@ | |||||
| package es.fp.edu.conecta2; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.context.annotation.Bean; | |||||
| import org.springframework.context.annotation.Configuration; | |||||
| import org.springframework.core.env.Environment; | |||||
| import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | |||||
| import org.springframework.jdbc.datasource.DriverManagerDataSource; | |||||
| 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 javax.sql.DataSource; | |||||
| import java.util.HashMap; | |||||
| import java.util.Map; | |||||
| @Configuration | |||||
| @EnableTransactionManagement | |||||
| @EnableJpaRepositories( | |||||
| entityManagerFactoryRef = "adminEntityManagerFactory", | |||||
| transactionManagerRef = "adminTransactionManger", | |||||
| basePackages = {"es.fp.edu.conecta2.repo.admin"}) | |||||
| public class BDTempConfig { | |||||
| @Autowired | |||||
| private Environment env; | |||||
| @Bean(name="adminDataSource") | |||||
| public DataSource userDatasource() { | |||||
| DriverManagerDataSource dataSource = new DriverManagerDataSource(); | |||||
| dataSource.setUrl(env.getProperty("temporal.datasource.url")); | |||||
| dataSource.setUsername(env.getProperty("temporal.datasource.username")); | |||||
| dataSource.setPassword(env.getProperty("temporal.datasource.password")); | |||||
| dataSource.setDriverClassName(env.getProperty("temporal.datasource.driver-class-name")); | |||||
| return dataSource; | |||||
| } | |||||
| @Bean(name = "adminEntityManagerFactory") | |||||
| public LocalContainerEntityManagerFactoryBean entityManagerFactory() { | |||||
| // TODO: 27/01/2023 | |||||
| LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); | |||||
| em.setDataSource(userDatasource()); | |||||
| em.setPackagesToScan("es.fp.edu.conecta2.modelo.admin"); | |||||
| HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); | |||||
| em.setJpaVendorAdapter(vendorAdapter); | |||||
| Map<String,Object> properties = new HashMap<>(); | |||||
| properties.put("hibernate.hbm2ddl.auto", env.getProperty("temporal.jpa.hibernate.ddl-auto")); | |||||
| properties.put("hibernate.show-sql", env.getProperty("temporal.jpa.show-sql")); | |||||
| properties.put("hibernate.dialect", env.getProperty("temporal.jpa.properties.hibernate.dialect")); | |||||
| em.setJpaPropertyMap(properties); | |||||
| return em; | |||||
| } | |||||
| @Bean(name = "adminTransactionManager") | |||||
| public PlatformTransactionManager transactionManager() { | |||||
| JpaTransactionManager transactionManager = new JpaTransactionManager(); | |||||
| transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); | |||||
| return transactionManager; | |||||
| } | |||||
| } | |||||