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

后端 未结 7 1159
刺人心
刺人心 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:51

    You can use hibernate QueryTranslator:

    String hqlQueryString = hqlQuery.getQueryString();
    ASTQueryTranslatorFactory queryTranslatorFactory = new ASTQueryTranslatorFactory();
    SessionImplementor hibernateSession = entityManager.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();
    

提交回复
热议问题