EN · DE · RU · FR · ES

#1328 : JpaConfig.kt

projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt Type : Kotlin · Rôle : Composant · Source : projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt 94 lignes · 54 code · 25 commentaires · 15 vides
Fichier de code source dans projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/jpa/JpaConfig.kt contenant du code Kotlin pour la couche Composant.

Structure du code

Annotations : Bean, Value, Configuration

Classes : JpaConfig

Beans Spring : entityManagerFactory

Fonctions (1) : entityManagerFactory

Propriétés (10) : hibernateShowSql, hibernateFormatSql, hibernateHighlightSql, hibernateUseSqlComments, hibernateGenerateStatistics, hibernateHbm2ddlAuto, hibernateSearchDirectoryRoot, factoryBean, vendorAdapter, properties

Importations : 9 paquets

Paquet : org.projectforge.framework.persistence.jpa

Code source (abrégé)

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" // Fonctionne.
        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
    }
}

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
cf00da112 Migration en cours...
1e18ea268 ehcache supprimé :-(
2e0e9d923 ehcache configuré, mais ne fonctionne pas :-(