HQL日志记录类别/选择性hibernate HQL日志记录?

时间:2016-04-22 16:02:15

标签: hibernate logging

所有HQL 没有HQL 记录对我来说太过钝。有没有人知道hibernate中的设置/参数,这可以让我对不同查询的HQL日志记录进行优先级排序/分类?

例如,我理想的是希望能够设置类别或"查询类型"每个查询上的标记,并规范我的每种查询类型的../WARN/INFO/DEBUG/ ..日志记录级别。

我可以看到像

这样的东西
  • org.hibernate.event.spi.EventType,包含事件我可以根据我自己的设置注册监听器并触发监听器的日志记录。

  • org.hibernate.Interceptor,它定义在会话中调用特定事件的方法,我可以覆盖类似的东西。

但我无法立即找到与运行查询相对应的任何此类入口点。我可以想象/希望的一个简单方法是在@NamedQuery上设置一个注释字段,但我不会在那里看到任何明显的东西..

1 个答案:

答案 0 :(得分:0)

在生产系统中记录这些查询会对性能产生负面影响。

我建议使用数据库的分析工具(例如Oracle OEM),而不是识别任何代价高昂的查询。您还可以直接查询许多数据库中的系统表,以识别长时间运行的查询,经常执行的查询等。

向您的意志弯曲hibernate查询可能非常棘手,因此您可能最终希望通过缓存经常获取的数据或在数据库中使用索引和分区来解决大多数查询性能问题。