我可以使Hibernate标签使用查询名称生成它的SQL吗?

时间:2014-04-10 03:19:40

标签: hibernate jpa

在分析来自数据库的慢速查询报告时,将SQL与发布它们的Java代码相关联有点棘手。

是否可以配置Hibernate将标签(作为注释)附加到它发出的SQL?理想情况下,对于JPA NamedQueries,它将是查询名称,对于动态构造的查询,我们可以告诉CriteriaBuilder使用一些标签。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您可以通过Criteria通过here为查询附加评论。

  

setComment(String comment):为生成的SQL添加注释。

     

参数:comment - 一个人类可读的字符串

     

返回:this(用于方法链接)

对于其他情况,不使用Criteria API,可以将注释添加为查询提示。

  

setHint(String hintName,Object value):设置查询属性或   暗示。提示元素可用于指定查询属性和   提示。必须遵守本规范定义的属性   提供者。供应商特定提示   必须默默忽略供应商无法识别的 。便携式应用程序不应该依赖于标准超时提示。   取决于使用的数据库和使用的锁定机制   提供者,此提示 可能会或可能不会被观察

[强调我的]

根据实现可以在查询中添加提示,可以参考{{3}}获取Hibernate。此外,还有可用的属性org.hibernate.comment可用于将注释设置为提示。