【问题标题】:Converting HQL to SQL query将 HQL 转换为 SQL 查询
【发布时间】:2013-07-02 02:05:06
【问题描述】:

我想知道如何将 HQL 查询转换为 sql 查询。我知道如果我们设置 showsql = true 参数,我们可以获得 sql 查询,但参数值不会附加其值。我需要找到打印日志中生成的 SQL 查询并用于我的性能优化的方法。

提前致谢

【问题讨论】:

  • 你知道可以打印prepared statements的参数吗?我不确定您能否以简洁的方式显示整个查询(带有绑定参数)。

标签: java sql hibernate jakarta-ee


【解决方案1】:

Hibernate 使用dialects 进行特定优化。也许您可以扩展现有的 Oracle 方言之一或提供自己的方言。您可以通过继承 Oracle 方言来创建自定义方言。

【讨论】:

    【解决方案2】:

    你可以在这里查看我的答案:https://stackoverflow.com/a/37749916/1350643

    简而言之,您可以使用以下代码将 hql 转换为 sql:

    QueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory();
    SessionFactoryImplementor factory = (SessionFactoryImplementor) getSessionFactory();
    QueryTranslator translator = translatorFactory.
            createQueryTranslator(hqlQueryText, hqlQueryText, Collections.EMPTY_MAP, factory);
    translator.compile(Collections.EMPTY_MAP, false);
    translator.getSQLString(); 
    

    来源:http://narcanti.keyboardsamurais.de/hibernate-hql-to-sql-translation.html

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2017-07-12
      • 2018-06-20
      • 2012-09-06
      • 2016-09-22
      • 2020-03-28
      相关资源
      最近更新 更多