将HQL转换为SQL查询

Sam*_*Sam 3 java sql hibernate java-ee

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

提前致谢

Ale*_*der 5

你可以在这里查看我的答案: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(); 
Run Code Online (Sandbox Code Playgroud)

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