如何查看hibernate触发的查询?

Posted

技术标签:

【中文标题】如何查看hibernate触发的查询?【英文标题】:How to see queries being fired by hibernate? 【发布时间】:2011-05-21 08:42:05 【问题描述】:

当休眠应用程序在 tomcat 中运行时,我如何查看休眠正在触发哪些查询?

【问题讨论】:

【参考方案1】:

快速的答案是

hibernate.show_sql=true 

例如如http://www.javalobby.org/java/forums/t44119.html

并且来自官方文档:

hibernate.show_sql

将所有 SQL 语句写入控制台。这是将日志类别 org.hibernate.SQL 设置为调试的替代方法。 例如真实 |假的

hibernate.format_sql

在日志和控制台中漂亮地打印 SQL。例如真实 |假的

也请参阅此问题:Hibernate show real SQL

【讨论】:

在 Tomcat 中,这很可能以“catalina.out”结尾。【参考方案2】:

另外,如果你想显示你的参数值,你可以添加

log4j.logger.org.hibernate.type=trace

到您的 log4j 属性文件。

【讨论】:

【参考方案3】:

另一种选择是 P6Spy。它拦截 JDBC 驱动程序并记录所有事务。

http://sourceforge.net/projects/p6spy/

【讨论】:

以上是关于如何查看hibernate触发的查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何知道/记录 Hibernate 2 级缓存是不是用于查询?

Hibernate在SQL查询中显示问号[重复]

Hibernate HQL 查询:如何将集合设置为查询的命名参数?

Laravel - 如何查看查询来源?

如何在hibernate中实现对两个表的查询数据?

如何计算 Hibernate 在一个 Grails 请求中执行了多少 SQL 查询?