Hibernate-4显示生成的SQL代码

时间:2014-08-27 06:52:25

标签: java hibernate maven log4j

我在我的eclipse IDE中创建了一个Maven项目,并尝试编写简单的hibernate程序。但我无法看到由hibernate生成的最终查询,其中还包括绑定参数。

我也按照这里提到的帖子:Hibernate show real SQL,但没有帮助。

我有以下配置:

在我的hibernate.cfg.xml文件中,我有:

    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="use_sql_comments">true</property>

我还放置了log4j.properties文件及其内容:

log4j.logger.org.hibernate=INFO, hb
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.logger.net.sf.hibernate.type=debug

log4j.appender.hb=org.apache.log4j.ConsoleAppender
log4j.appender.hb.layout=org.apache.log4j.PatternLayout
log4j.appender.hb.layout.ConversionPattern=HibernateLog --> %d{HH:mm:ss} %-5p %c - %m%n
log4j.appender.hb.Threshold=TRACE

hibernate.cfg.xmllog4j.properties都位于路径:

MyProject/src/main/java/log4j.properties

但是当我运行一个小程序时,我无法看到由hibernate添加的绑定参数,我只是看到下面的结果:

Hibernate: 
    select
        this_.ID as ID1_0_0_,
        this_.NAME as NAME2_0_0_
    from
        MY_TABLE this_ 

我正在使用Hibernate-4.3

3 个答案:

答案 0 :(得分:1)

SLF4J中添加pom.xml依赖项解决了我的问题:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.6</version>
    </dependency>

答案 1 :(得分:0)

更改此行:

log4j.logger.net.sf.hibernate.type=debug

为:

log4j.logger.org.hibernate.type=trace

你应该得到bind参数。

答案 2 :(得分:0)

log4j.properties 文件必须位于以下目录中:

MyProject/src/main/resources/log4j.properties

因此,log4j将在类路径中找到此文件,而无需任何其他配置。


另请参阅Introduction to the Standard Directory Layout网页中的Apache Maven

您可能希望看到下一个问题: Logging server logs to one file and SQL logs to another