30

我正在寻找 setup hibernate 或 log4j 来告诉我,在 hibernate 中执行多长时间的查询,由 hql 调用。

直到现在我还没有发现任何有趣的东西。

也许你们中的一些人可以帮助我解决这个问题?

4

3 回答 3

34

有一种简单的方法(内置hibernate)来实现它。它由HHH-36593.5.43.6.0.Beta1.

为此,请使用:

  • 登录包:org.hibernate.stat至少在DEBUG
  • 设置休眠属性:hibernate.generate_statistics=true

之后SQL将记录所有 s,包括获取的行数和查询执行所用的时间。

此外,如果有兴趣,它会提供有关查询的统计信息。要让它们通过 暴露JMX并查看它们JConsole,您可以使用Hibernate JConsole plugin,可在:http ://hibernate-jcons.sourceforge.net/

于 2013-08-13T08:33:14.810 回答
4

要将查询及其执行时间记录到日志文件中,您可以尝试使用Craftsman Spy JDBC 驱动程序,它做的事情完全相同,并且与 Spring 具有简单的集成

另一种方法是使用Spring Insight,它显示 JDBC/Hibernate 调用和更多细节。

相关链接:

于 2012-09-29T21:10:39.750 回答
2

如果您需要自定义解决方案,则可以使用 AOP 并在执行本机查询时围绕休眠会话类添加环绕建议。

于 2012-09-30T04:28:42.800 回答