How to convert HQL to SQL Query programmatically (without logging)

后端 未结 7 1168
刺人心
刺人心 2021-02-05 12:10

I am executing the following HQL and it is executing properly

String hql = \"FROM Employee\";
Query query = session.createQuery(hql);
List results = query.list(         


        
7条回答
  •  囚心锁ツ
    2021-02-05 12:53

    I believe you want a combination of the top 2 answers

      String hqlQueryString = query.unwrap(org.hibernate.Query.class).getQueryString();
      ASTQueryTranslatorFactory queryTranslatorFactory = new ASTQueryTranslatorFactory();
      SessionImplementor hibernateSession = em.unwrap(SessionImplementor.class);
      QueryTranslator queryTranslator = queryTranslatorFactory.createQueryTranslator("", hqlQueryString, java.util.Collections.EMPTY_MAP, hibernateSession.getFactory());
      queryTranslator.compile(java.util.Collections.EMPTY_MAP, false);
      String sqlQueryString = queryTranslator.getSQLString();
    

提交回复
热议问题