我可以让Hibernate标签它与查询名称产生的SQL吗?
在分析来自数据库的慢速查询报告时,将SQL与发布它们的Java代码关联起来有点棘手。
是否可以配置Hibernate将标签(作为注释)附加到它发布的SQL? 理想情况下,对于JPA NamedQueries,它将是查询名称,对于动态构建的查询,我们可以告诉CriteriaBuilder使用一些标签。
如果我正确理解,可以通过标准分析查询来为查询附加评论。
setComment(String comment):为生成的SQL添加注释。
参数:comment - 一个可读的字符串
返回:this(用于方法链接)
对于其他情况,不使用Criteria API,可以将注释添加到查询中作为提示。
setHint(String hintName,Object value):设置查询属性或提示。 提示元素可用于指定查询属性和提示。 提供者必须遵守本规范定义的属性。 供应商无法识别的供应商特定提示必须默默忽略 。 便携式应用程序不应该依赖标准的超时提示。 根据使用的数据库和提供商使用的锁定机制, 可能会或可能不会遵守此提示。
[强调我的]
根据不同的实现可以向查询添加提示,可以参考这里的Hibernate。 此外,还有可用的属性org.hibernate.comment
可用于将注释设置为提示。
上一篇: Can I make Hibernate label the SQL it produces with query names?