Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.kui.config
- import org.springframework.beans.factory.annotation.Autowired
- import org.springframework.beans.factory.annotation.Value
- import org.springframework.context.annotation.Bean
- import org.springframework.context.annotation.Configuration
- import org.springframework.core.env.Environment
- 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 java.util.*
- import javax.sql.DataSource
- @Configuration
- open class HibernateConfig {
- @Autowired lateinit var env: Environment
- @Autowired lateinit var entityManagerFactory: LocalContainerEntityManagerFactoryBean
- @Autowired lateinit var dataSource: DataSource
- @Bean
- open fun dataSource(): DataSource {
- val source = DriverManagerDataSource()
- source.setDriverClassName(env.getProperty("db.driver"))
- source.url = env.getProperty("db.url")
- source.username = env.getProperty("db.username")
- source.password = env.getProperty("db.password")
- return source
- }
- @Bean
- open fun entityManagerFactory(scanPackages: Package): LocalContainerEntityManagerFactoryBean {
- val emf = LocalContainerEntityManagerFactoryBean()
- emf.dataSource = dataSource
- emf.setPackagesToScan(env.getProperty("entitymanager.scan.packages"))
- emf.jpaVendorAdapter = HibernateJpaVendorAdapter()
- val props = Properties()
- props.put("hibernate.dialect", env.getProperty("hibernate.dialect"))
- props.put("hibernate.show_sql", env.getProperty("hibernate.show_sql"))
- props.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"))
- emf.setJpaProperties(props)
- return emf
- }
- @Bean
- open fun transactionManager(): JpaTransactionManager {
- val txMngr = JpaTransactionManager()
- txMngr.entityManagerFactory = entityManagerFactory.`object`
- return txMngr
- }
- }
Add Comment
Please, Sign In to add comment