我不确定为什么它不显示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,可能甚至没有正确注入?)
请帮助提前谢谢!
确保DEBUG良好,在某一时刻,hibernate日志记录已从DEBUG更改为TRACE。另外,请确保您的帐户中没有门槛log4j.config。如果您还希望显示参数,则包括org.hibernate.type。您可能还需要设置org.hibernate.jdbc=TRACE或尝试org.hibernate=TRACE分析您的需求,然后将每个包装更改回适当的水平。
log4j.config
org.hibernate.type
org.hibernate.jdbc=TRACE
org.hibernate=TRACE