【发布时间】:2016-04-22 16:02:15
【问题描述】:
所有 HQL 或 没有 HQL 记录对我来说太生硬了。有人知道休眠中的设置/参数,这将允许我为不同的查询优先/分类 HQL 日志记录?
例如,理想情况下,我希望能够在每个查询上设置一个类别或“查询类型”标记,并为我的每个查询类型调节 ../WARN/INFO/DEBUG/.. 日志记录级别。
我可以看到有类似的东西
org.hibernate.event.spi.EventType,包含事件,我或许可以根据我自己的设置在某处注册监听器并触发监听器的日志记录。
org.hibernate.Interceptor,它定义了为会话中的特定事件调用的方法,我可以为类似的东西重写。
但我无法立即找到与正在运行的查询相对应的任何此类入口点。我可以想象/希望的一种简单方法是在 @NamedQuery 上设置一个注释字段,但我也看不到任何明显的东西..
【问题讨论】:
-
不,没有办法。你为什么要这样做,我很难想象它会有什么用例?
-
用例是处理大量数据的客户端系统的日志/性能分析。一些我们满意的查询,在其他情况下我们无法提前知道,因为它们可能是根据用户设置动态生成的,因此调用休眠层时的选择性会很有用。虽然日志记录很好,但我们之前曾抱怨过过多的日志记录 - 这将是减少日志中噪音的一种方法。