2017-03-16 4 views
1

Nach verschiedenen Beispielen und dem Lesen der Spring-Boot-Dokumentation kann ich die Hibernate-Statistik noch immer nicht aktivieren. Ich setze die Eigenschaft in der Datei application.properties. Das Ausführen der Spring-Boot-Anwendung über einen Integrationstest oder Application.java führt zu keiner Statistik.Spring boot application.properties hibernate.generate_statistics

Meine application.properties Datei.

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> 

Und mein Integrationstest

@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()); 

    } 
} 

Was bin ich?

Antwort

1

Nicht sicher, ob das Folgende korrekt ist, aber es funktioniert. Ich zwinge die Eigenschaften auf meine LocalContainerEntityManagerFactoryBean mit Konstruktion.

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; 
     } 
    } 

Nach der 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) 
} 
Verwandte Themen