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.xml
和log4j.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日志记录到另一个文件 。