복붙노트

[SPRING] Hibernate는 sql_show = true로 SQL 문을 보여주지 않는다.

SPRING

Hibernate는 sql_show = true로 SQL 문을 보여주지 않는다.

왜 SQL 문을 표시하지 않는 지 모르겠습니다. 나는 이전에 일해왔다. (나이 든 봄에, 나는 이번에 3을 사용한다)

ApplicationContext에서 나는 :

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="myDataSource"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
    <property name="packagesToScan">
        <list>
            <value>my.model.*</value>
        </list>
    </property>
</bean>

log4j에서 :

# Standrd System.out appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# package override setting
log4j.logger.org.hibernate.SQL=DEBUG, stdout
log4j.additivity.org.hibernate.SQL=false
log4j.logger.org.displaytag=INFO

log4j.rootLogger=DEBUG, stdout

그 밖의 모든 것은 괜찮은 것처럼 보이지만 SQL을 표시하지는 않습니다.

내가 놓친 게 있니?

(또는 org.hibernate.cfg.Environment.getProperties ()에서 SessionFactory로 인쇄 할 수 있습니까? show_sql이 표시되지 않습니다. 제대로 삽입되지 않았을 수도 있습니다.)

도와주세요 미리 감사드립니다.

해결법

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

    1.DEBUG가 좋은지 확인하십시오. 한 지점에서 최대 절전 모드 로깅이 DEBUG에서 TRACE로 변경되었습니다. 또한 log4j.config에 임계 값이 없는지 확인하십시오. 인수를 표시하려면 org.hibernate.type을 포함하십시오. org.hibernate.jdbc = TRACE를 설정하거나 org.hibernate = TRACE를 분석하여 필요를 분석하고 패키지 당 적절한 수준으로 다시 변경해야 할 수도 있습니다.

    DEBUG가 좋은지 확인하십시오. 한 지점에서 최대 절전 모드 로깅이 DEBUG에서 TRACE로 변경되었습니다. 또한 log4j.config에 임계 값이 없는지 확인하십시오. 인수를 표시하려면 org.hibernate.type을 포함하십시오. org.hibernate.jdbc = TRACE를 설정하거나 org.hibernate = TRACE를 분석하여 필요를 분석하고 패키지 당 적절한 수준으로 다시 변경해야 할 수도 있습니다.

  2. ==============================

    2.당신은 hibernate.show_sql이 올바르게 설정되어 있습니다. 출력물을 어디에서 찾고 있습니까? 어쨌든, show_sql을 잊어서 대신 Hibernate의 로깅을 사용하는 것이 낫다. 훨씬 더 유연합니다. "hibernate.show_sql"속성을 완전히 제거하고 로깅 설정에서 사용하십시오.

    당신은 hibernate.show_sql이 올바르게 설정되어 있습니다. 출력물을 어디에서 찾고 있습니까? 어쨌든, show_sql을 잊어서 대신 Hibernate의 로깅을 사용하는 것이 낫다. 훨씬 더 유연합니다. "hibernate.show_sql"속성을 완전히 제거하고 로깅 설정에서 사용하십시오.

    log4j.logger.org.hibernate.SQL=TRACE
    log4j.logger.org.hibernate.type=TRACE
    

    모든 것이 동일한 appender에 쓰여졌 기 때문에 additivity를 망칠 아무 이유도 없다. 그래서이 라인은 아무 것도하지 않고 제거되어야한다.

    log4j.additivity.org.hibernate.SQL=false
    
  3. from https://stackoverflow.com/questions/7074481/hibernate-not-showing-sql-statement-even-with-sql-show-true by cc-by-sa and MIT license