Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

465
Visualizações
Spring boot application.properties hibernate.generate_statistics

After following various examples and reading the spring boot documentation I'm still unable to enable hibernate statistics. I'm setting the property in the application.properties file. Running the spring boot application via a integration test or Application.java produces no stats.

My application.properties file.

    spring.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/postgres
    spring.datasource.username = postgres
    spring.datasource.password = password

    spring.datasource.driver-class-name=org.postgresql.Driver
    spring.datasource.platform=postgres

    spring.datasource.testWhileIdle = true
    spring.datasource.validationQuery = SELECT 1

    spring.jpa.properties.hibernate.show_sql=true
    spring.jpa.properties.hibernate.format_sql=true
    spring.jpa.properties.hibernate.generate_statistics=true

    logging.level.org.hibernate.SQL=TRACE
    logging.level.org.hibernate.stat=TRACE

    logging.file=transaction-app.log

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

And my integration test

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SqlMappingTest {

    @Autowired
    PlanService planService;

    @org.junit.Test
    public void findAll() {
        List<Plan> plans = planService.findAll();
        Assert.assertEquals(1, plans.size());

    }
}

What am I missing?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

It works for me (using Spring Boot 2.1.6.RELEASE).

a) In file application.properties:

spring.jpa.properties.hibernate.generate_statistics=true

b) Ensure runtime debug level for 'org.hibernate.stat' is at least DEBUG:

curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "DEBUG"}' http://localhost:8080/actuator/loggers/org.hibernate.stat

c) Check in log something like:

2019-07-03 21:27:27.739 DEBUG 11797 --- [nio-8080-exec-3] o.h.stat.internal.StatisticsImpl         : HHH000117: HQL: select count(*) from AppRequest x WHERE x.uuid = :uuid, time: 1ms, rows: 1    
over 4 years ago · Santiago Trujillo Relatório

0

Not sure if the below is correct, but got it working. I'm forcing the properties onto my LocalContainerEntityManagerFactoryBean with construction.

DatabaseConfig snippet:

    @Configuration
    @EnableTransactionManagement
    @ConfigurationProperties(prefix = "spring.datasource")
    public class DatabaseConfig extends HikariConfig {

        @Autowired
        @Bean
        public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, Environment env) {
            LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();

            entityManagerFactory.setDataSource(dataSource);

            // Classpath scanning of @Component, @Service, etc annotated class
            entityManagerFactory.setPackagesToScan(new String[]{"com.test"});

            // Vendor adapter
            HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
            entityManagerFactory.setJpaVendorAdapter(vendorAdapter);

            Properties jpaProperties = new Properties();

            jpaProperties.put("hibernate.show_sql",
                    env.getRequiredProperty("spring.jpa.properties.hibernate.show_sql")
            );

            jpaProperties.put("hibernate.format_sql",
                    env.getRequiredProperty("spring.jpa.properties.hibernate.format_sql")
            );
            jpaProperties.put("hibernate.generate_statistics",
                    env.getRequiredProperty("spring.jpa.properties.hibernate.generate_statistics")
            );

            entityManagerFactory.setJpaProperties(jpaProperties);
            return entityManagerFactory;
        }
    }

After the config

2017-03-16 11:41:02.881 DEBUG 7884 --- [main] o.h.s.internal.ConcurrentStatisticsImpl  : HHH000117: HQL: select up from UserPlan up, time: 48ms, rows: 1
2017-03-16 11:41:02.885  INFO 7884 --- [main] i.StatisticalLoggingSessionEventListener : Session Metrics {
    939077 nanoseconds spent acquiring 1 JDBC connections;
    0 nanoseconds spent releasing 0 JDBC connections;
    2848386 nanoseconds spent preparing 1 JDBC statements;
    12205063 nanoseconds spent executing 1 JDBC statements;
    0 nanoseconds spent executing 0 JDBC batches;
    0 nanoseconds spent performing 0 L2C puts;
    0 nanoseconds spent performing 0 L2C hits;
    0 nanoseconds spent performing 0 L2C misses;
    0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
    18693 nanoseconds spent executing 1 partial-flushes (flushing a total of 0 entities and 0 collections)
}
over 4 years ago · Santiago Trujillo Relatório

0

Define property hibernate.generate_statistics=true in hibernate.properties file.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda