Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package se.grouprich.projectmanagement.config;
- import javax.persistence.EntityManagerFactory;
- import javax.sql.DataSource;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.auditing.DateTimeProvider;
- import org.springframework.data.domain.AuditorAware;
- import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
- import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.JpaVendorAdapter;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.orm.jpa.vendor.Database;
- import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import com.zaxxer.hikari.HikariConfig;
- import com.zaxxer.hikari.HikariDataSource;
- import se.grouprich.projectmanagement.model.auditing.AuditingDateTimeProvider;
- import se.grouprich.projectmanagement.model.auditing.UsernameAuditorAware;
- @Configuration
- @EnableJpaRepositories("se.grouprich.projectmanagement.repository")
- @EnableTransactionManagement
- @EnableJpaAuditing(auditorAwareRef = "auditorProvider", dateTimeProviderRef = "dateTimeProvider")
- public class AppConfig
- {
- @Bean
- public DataSource dataSource()
- {
- HikariConfig config = new HikariConfig();
- config.setDriverClassName("com.mysql.jdbc.Driver");
- config.setJdbcUrl("jdbc:mysql://localhost:3306/ProjectManagement_Database");
- config.setUsername("root");
- config.setPassword("root");
- return new HikariDataSource(config);
- }
- @Bean
- public JpaTransactionManager transactionManager(EntityManagerFactory factory)
- {
- return new JpaTransactionManager(factory);
- }
- @Bean
- public JpaVendorAdapter jpaVendorAdapter()
- {
- HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
- adapter.setDatabase(Database.MYSQL);
- adapter.setGenerateDdl(true);
- // adapter.setShowSql(true); // lagt till den här temporart för att
- // kunna se Sql-log
- return adapter;
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory()
- {
- LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
- factory.setDataSource(dataSource());
- factory.setJpaVendorAdapter(jpaVendorAdapter());
- factory.setPackagesToScan("se.grouprich.projectmanagement.model");
- return factory;
- }
- @Bean
- DateTimeProvider dateTimeProvider()
- {
- return new AuditingDateTimeProvider();
- }
- @Bean
- AuditorAware<String> auditorProvider()
- {
- return new UsernameAuditorAware();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement