java将HQL转换为SQL查询 1 年,4 月 Questions & Answers 8332 我想知道如何将HQL查询转换为sql查询。我知道如果我们在上设置showsql=true参数,我们可以得到sql查询,但参数值不会附加其值。我需要找到打印日志中生成的SQL查询并用于性能优化的方法 提前谢谢
# 1 楼答案 你可以在这里查看我的答案: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
# 1 楼答案
你可以在这里查看我的答案:https://stackoverflow.com/a/37749916/1350643
简而言之,您可以使用以下代码将hql转换为sql:
资料来源:http://narcanti.keyboardsamurais.de/hibernate-hql-to-sql-translation.html
# 2 楼答案
Hibernate使用dialects进行特定的优化。也许你可以扩展现有的甲骨文方言或提供自己的。您可以通过子类化Oracle方言来创建自定义方言