vladmihalcea / hypersistence-optimizer

Hypersistence Optimizer allows you to get the most out of JPA and Hibernate. By scanning your application configuration and mappings, Hypersistence Optimizer can tell you what changes you need to do to speed up your data access layer.
https://vladmihalcea.com/hypersistence-optimizer/
Apache License 2.0
306 stars 43 forks source link

Spring Boot 3.0.0 dependency #187

Closed tzenker-tzc-itexperts closed 1 year ago

tzenker-tzc-itexperts commented 1 year ago

Hypersistence optimizer 2.6.3 config working fine with Spring Boot 2.7.5.

But it throws an error with Spring Boot 3.0.0 when switching from javax to jakarta.

Hint welcome.

error:

.../system/HypersistenceConfiguration.java:30: error: cannot access EntityManagerFactory
                new JpaConfig(entityManagerFactory).setProperties(properties)
                ^

Code Snippet:

import io.hypersistence.optimizer.HypersistenceOptimizer;
import io.hypersistence.optimizer.core.config.Config;
import io.hypersistence.optimizer.core.config.JpaConfig;
import jakarta.persistence.EntityManagerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class HypersistenceConfiguration {
    @Bean
    public HypersistenceOptimizer hypersistenceOptimizer(
            EntityManagerFactory entityManagerFactory) {

        Map<String, Object> properties = new HashMap<>();
        properties.put(Config.Property.Session.TIMEOUT_MILLIS, 4500);
        properties.put(Config.Property.Session.FLUSH_TIMEOUT_MILLIS, 800);
        properties.put(Config.Property.Query.MAX_RESULT_SIZE,3000);
        properties.put(Config.Property.Query.TIMEOUT_MILLIS,3000);

        return new HypersistenceOptimizer(
                new JpaConfig(entityManagerFactory).setProperties(properties)
        );
    }
}
vladmihalcea commented 1 year ago

For Spring Boot 3 and Spring 6, you need to use a different dependency version (e.g. 2.6.3-jakarta) as indicated by the Installation Guide.

<dependency>
    <groupId>io.hypersistence</groupId>
    <artifactId>hypersistence-optimizer</artifactId>
    <version>2.6.3-jakarta</version>
</dependency>