在分析来自数据库的慢查询报告时,要将SQL与发出报告的Java代码关联起来有点棘手。
是否可以将Hibernate配置为将标签(作为注释)附加到它发出的SQL?理想情况下,对于JPA NamedQueries,它应该是查询名称,对于动态构造的查询,应该是一些我们可以告诉CriteriaBuilder使用的标签。
发布于 2014-04-10 13:10:55
如果我理解正确的话,您可以通过Criteria将注释附加到查询以分析查询。
setComment(String comment) :向生成的SQL添加注释。
参数:注释-人类可读的字符串
返回:this(用于方法链接)
对于其他情况,不使用Criteria API,可以将注释作为提示添加到查询。
setHint(String hintName,Object value) :设置查询属性或提示。提示元素可用于指定查询属性和提示。此规范定义的属性必须由提供程序遵守。必须以静默方式忽略提供商未识别的特定于供应商的提示。可移植的应用程序不应该依赖标准的超时提示。根据正在使用的数据库和提供程序使用的锁定机制,此提示可能会被观察到,也可能不会被观察到。
强调我的
根据具体的实现可以给查询添加提示,可以参考here for Hibernate。此外,还有可用属性org.hibernate.comment可用于将注释设置为提示。
https://stackoverflow.com/questions/22978031
复制相似问题