EN · DE · RU · FR · ES

#1328: JpaConfig.kt

projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt Tipo: Kotlin · Rol: Componente · Fuente: projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt 94 líneas · 54 código · 25 comentarios · 15 en blanco
Archivo de código fuente en projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt que contiene código Kotlin para la capa de Componente.

Estructura del código

Anotaciones: Bean, Value, Configuration

Clases: JpaConfig

Beans de Spring: entityManagerFactory

Funciones (1): entityManagerFactory

Propiedades (10): hibernateShowSql, hibernateFormatSql, hibernateHighlightSql, hibernateUseSqlComments, hibernateGenerateStatistics, hibernateHbm2ddlAuto, hibernateSearchDirectoryRoot, factoryBean, vendorAdapter, properties

Importaciones: 9 paquetes

Paquete: org.projectforge.framework.persistence.jpa

Código fuente (resumido)

package org.projectforge.framework.persistence.jpa

import org.hibernate.cfg.AvailableSettings
import org.projectforge.framework.persistence.search.MyAnalysisConfigurer
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
import java.util.*
import javax.sql.DataSource

@Configuration
open class JpaConfig {
    @Value("\${hibernate.show_sql}")
    private val hibernateShowSql = false

    @Value("\${hibernate.format_sql}")
    private val hibernateFormatSql = false

    @Value("\${hibernate.hibernateHighlightSql}")
    private val hibernateHighlightSql = false

    @Value("\${hibernate.hibernateUseSqlComments}")
    private val hibernateUseSqlComments = false

    @Value("\${hibernate.generate_statistics}")
    private val hibernateGenerateStatistics = true

    @Value("\${hibernate.hbm2ddl.auto}")
    private val hibernateHbm2ddlAuto: String? = null

    @Value("\${hibernate.search.directory.root}")
    private val hibernateSearchDirectoryRoot: String? = null

    @Bean
    open fun entityManagerFactory(dataSource: DataSource?): LocalContainerEntityManagerFactoryBean {
        val factoryBean = LocalContainerEntityManagerFactoryBean()
        factoryBean.dataSource = dataSource
        factoryBean.setPackagesToScan("org.projectforge")

        val vendorAdapter = HibernateJpaVendorAdapter()
        factoryBean.jpaVendorAdapter = vendorAdapter

        val properties = Properties()
        //properties.put(AvailableSettings.DIALECT, hibernateDialect);
        properties[AvailableSettings.SHOW_SQL] = hibernateShowSql
        properties[AvailableSettings.FORMAT_SQL] = hibernateFormatSql
        properties[AvailableSettings.HIGHLIGHT_SQL] = hibernateHighlightSql
        properties[AvailableSettings.USE_SQL_COMMENTS] = hibernateUseSqlComments
        properties[AvailableSettings.GENERATE_STATISTICS] = hibernateGenerateStatistics
        properties[AvailableSettings.HBM2DDL_AUTO] = hibernateHbm2ddlAuto
        properties[AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS] = true
        properties[AvailableSettings.AUTOCOMMIT] = false
        properties[AvailableSettings.DEFAULT_BATCH_FETCH_SIZE] = 100

        /*
        properties["hibernate.javax.cache.uri"] = "classpath://ehcache.xml" // Funciona.
        properties["hibernate.cache.use_second_level_cache"] = true
        properties["hibernate.cache.use_query_cache"] = true
        properties["hibernate.cache.region.factory_class"] = JCacheRegionFactory::class.qualifiedName
        properties["hibernate.javax.cache.provider"] = org.ehcache.jsr107.EhcacheCachingProvider::class.qualifiedName
        */

        properties["hibernate.search.backend.analysis.configurer"] = MyAnalysisConfigurer::class.qualifiedName
        properties["hibernate.search.backend.directory.root"] = hibernateSearchDirectoryRoot
        factoryBean.setJpaProperties(properties)

        return factoryBean
    }
}

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
cf00da112 Migración en progreso...
1e18ea268 ehcache eliminado :-(
2e0e9d923 ehcache configurado, pero no funciona :-(