Hibernate即使使用sql\u show=true也不显示sql语句
我不知道为什么它不显示sql语句。我以前使用过它(在旧的spring上,这次我使用的是3) 在ApplicationContext中,我有:Hibernate即使使用sql\u show=true也不显示sql语句,hibernate,spring,Hibernate,Spring,我不知道为什么它不显示sql语句。我以前使用过它(在旧的spring上,这次我使用的是3) 在ApplicationContext中,我有: <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/>
<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>
其他一切似乎都很好,但它只是没有向我显示sql
我错过什么了吗
(或者可以从org.hibernate.cfg.Environment.getProperties()从SessionFactory打印吗?它没有显示show_sql,甚至可能没有正确注入?)
请帮忙
提前谢谢 确保调试正常,hibernate日志记录一度从调试更改为跟踪。 还要确保
log4j.config
中没有阈值。
如果还希望显示参数,请输入
org.hibernate.type
。您可能还需要设置org.hibernate.jdbc=TRACE
或尝试org.hibernate=TRACE
分析您的需求并将每个包更改回正确的级别。您已正确配置了hibernate.show\u sql。您在哪里寻找输出?在任何情况下,最好忘记show_sql,而使用Hibernate的日志记录。它更灵活。完全删除“hibernate.show_sql”属性,并在日志配置中使用
log4j.logger.org.hibernate.SQL=TRACE
log4j.logger.org.hibernate.type=TRACE
请注意,没有理由弄乱可加性,因为所有内容都写入同一个appender,因此此行没有任何作用,应该删除:
log4j.additivity.org.hibernate.SQL=false
在我的例子中,我通过在JBoss启动配置中添加一个参数来纠正这一点:
-Dorg.jboss.as.logging.per deployment=false
为我工作。hibernate.show\u sql属性不受日志管理。它直接向stdout写入数据。它确实这样做了,但在过去已经发生了变化。在我的控制台上,我得到:
[8/16/11 15:20:52:058 CEST]00000038 SystemOut O 15:20:52.056 DEBUG[WebContainer:6]org.hibernate.jdbc.util.SQLStatementLogger.logStatement:111-选择obfuscate0。我们的ID作为我们的1_77,obfuscate0.USR_ID作为USR2_77,obfuscate0_0.OFFICE作为LVE3_77,obfuscate0_0.IDG_77,混淆了它的工作原理。最后我犯了一个错误,实体没有正确加载。在application.properties文件中添加logging.level.org.hibernate=TRACE对我有效。我添加了log4j.logger.org.hibernate.type=TRACE,但仍然没有成功。顺便说一句,我正在使用JPA(注释)进行映射,我使用一个通用DAO来创建模型的DAO(使用spring将模型注入到扩展HibernateDaoSupport的a类中)在该类上添加了一个System.out.println用于调试。因此,我认为我检查了正确的日志=(它工作了。结果我犯了错误,实体没有正确加载
log4j.additivity.org.hibernate.SQL=false