Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate即使使用sql\u show=true也不显示sql语句_Hibernate_Spring - Fatal编程技术网

Hibernate即使使用sql\u show=true也不显示sql语句

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"/>

我不知道为什么它不显示sql语句。我以前使用过它(在旧的spring上,这次我使用的是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>
其他一切似乎都很好,但它只是没有向我显示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启动配置中添加一个参数来纠正这一点:

  • 双击“Red Hat JBoss EAP xxx”
  • 单击“打开启动配置”(选项卡“常规信息”)
  • 在“VM参数”字段的末尾添加
    -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