Hibernate-4显示生成的SQL代码

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

我也按照这里提到的post: Hibernate显示真正的SQL ,但它没有帮助。

我有以下配置:

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

  true true true 

我还将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

pom.xml添加SLF4J依赖项修复了我的问题:

   org.slf4j slf4j-log4j12 1.6.6  

改变这一行:

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

至:

 log4j.logger.org.hibernate.type=trace 

你应该得到bind参数。

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

 MyProject/src/main/resources/log4j.properties 

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


另请参阅Apache Maven网页中的标准目录布局简介

您可能希望看到下一个问题:将服务器日志记录到一个文件,将SQL日志记录到另一个文件