Spring Hibernate show_sql无法正常工作

时间:2015-05-18 18:33:51

标签: java spring hibernate

到了春天,我是新手,所以这可能只是我在看,但我已经尝试了几个小时无济于事。我有spring和hibernate集成和工作但是,我想将查询记录到一个文件,以便我可以检查它们。我正在使用log4j进行日志记录,但问题是我不能让hibernate写入文件,并希望得到一些澄清。

这是applicationContext

中的sessionFactory bean
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
        </props>
    </property>
    <property name="packagesToScan" value="com.example"/>
</bean>

Log4j配置

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">

<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="${catalina.home}/logs/my-log-file.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="20MB" />
    <param name="MaxBackupIndex" value="2" />

    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{DATE} %c | %msg %n" />
    </layout>
</appender>

<appender name="hibernate-rolling" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="${catalina.home}/logs/hib-example-file.log" />
    <param name="Append" value="true" />
    <param name="ImmediateFlush" value="true" />
    <param name="MaxFileSize" value="20MB" />
    <param name="MaxBackupIndex" value="2" />

    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{DATE} %c | %msg %n"/> 
    </layout>
</appender>


<logger name="org.hibernate.SQL" additivity="false">
    <level value="debug" />
    <appender-ref ref="hibernate-rolling" /> 
</logger>


<root>
    <priority value="INFO"></priority>
    <appender-ref ref="FILE" />
</root>
</log4j:configuration>

非常感谢任何帮助?

编辑:

我已经尝试了link中提供的记录器,但这并没有导致查询被写入文件。

1 个答案:

答案 0 :(得分:0)

我错过了表JPA注释,导致查询永远不会实际执行。因此,它没有记录它。添加了@Table(名称=&#34; My_Table&#34;) 它起作用了。