복붙노트

[SPRING] 스프링 JPA 공급 업체 어댑터를 사용하여 최대 절전 모드에서 SQL을 표시하지 못하게 함

SPRING

스프링 JPA 공급 업체 어댑터를 사용하여 최대 절전 모드에서 SQL을 표시하지 못하게 함

Hibernate는 SQL 추적을 stdout으로 계속해서 내보내고 있으며 JPA 어댑터 뒤에 숨겨져있을 때 Hibernate 구성 등록 정보를 변경하는 방법을 알 수 없습니다. 이것은 entityManagerFactory의 Spring 빈이다.

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="ssapDataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" >
            <property name="showSql" value="false"/>
        </bean>
    </property>
</bean>

showSql 프로퍼티를 false로 설정해도 Hibernate는 SQL을 계속 출력한다.

"hibernate.show_sql = false"를 사용하여 클래스 패스에 hibernate.properties 파일을 만들려고했으나 그 중 하나를 선택하지 않았습니다.

해결법

  1. ==============================

    1.persistence.xml에서 설정해보십시오.

    persistence.xml에서 설정해보십시오.

    <persistence>
      <persistence-unit name="PU">
        <properties>
          <property name="hibernate.show_sql" value="false"/>
        </properties>
      </persistence-unit>
    </persistence>
    
  2. ==============================

    2.

    <property name="jpaProperties">
        <props>
            <prop key="hibernate.show_sql">false</prop>
        </props>
    </property>
    

    이것도 작동합니다.

  3. ==============================

    3.내가 아는 한, Hibernate는 org.hibernate.SQL에 대한 로깅이 DEBUG 또는 ALL 수준에서 발생하면 SQL 문을 로깅하므로 비활성화 할 수 있습니다 (예 : log4j.logger.org.hibernate.SQL = info Log4J).

    내가 아는 한, Hibernate는 org.hibernate.SQL에 대한 로깅이 DEBUG 또는 ALL 수준에서 발생하면 SQL 문을 로깅하므로 비활성화 할 수 있습니다 (예 : log4j.logger.org.hibernate.SQL = info Log4J).

  4. ==============================

    4.Spring을 사용하는 경우 showSql 속성이 true로 설정되어 있지 않은지 확인하십시오.

    Spring을 사용하는 경우 showSql 속성이 true로 설정되어 있지 않은지 확인하십시오.

    나는이 일을 스스로하고 있었다.

    <bean id="vendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="showSql" value="false"/>
    </bean>
    
  5. ==============================

    5.이것을 log4j.properties에 추가하십시오.

    이것을 log4j.properties에 추가하십시오.

    log4j.logger.org.hibernate = WARN
    
  6. ==============================

    6.이것은 나를 위해 일했다 :

    이것은 나를 위해 일했다 :

    spring.jpa.show-sql=false
    
  7. ==============================

    7.다음은 Hibernate SQL 쿼리를 표시하거나 숨기는 세 가지 방법입니다 (이들은 아마도 다른 것입니다).

    다음은 Hibernate SQL 쿼리를 표시하거나 숨기는 세 가지 방법입니다 (이들은 아마도 다른 것입니다).

    로거 구성은 지속성 구성과는 별개의 것으로 보입니다. 영속성 설정에 관해서는 spring이 persistence.xml을 오버라이드하는 것으로 보입니다. (나는 봄에 의해로드 된 persistence.xml로 테스트했습니다. 그렇지 않은 경우에는 동작이 무엇인지 알 수 없습니다). 두 구성 간의 차이점은 결과 로깅이며,로 그백은 다음과 같습니다.

    2016-08-25 16:05:39,436 DEBUG org.hibernate.SQL(92) - alter table ...

    지속성 구성의 경우 :

    Hibernate: alter table ...
  8. from https://stackoverflow.com/questions/679518/cant-make-hibernate-stop-showing-sql-using-spring-jpa-vendor-adapter by cc-by-sa and MIT license