private QueryTranslatorImpl createNewQueryTranslator(String hql, Map replacements, boolean scalar, SessionFactoryImplementor factory) { QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); QueryTranslatorImpl newQueryTranslator = ( QueryTranslatorImpl ) ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory, null ); newQueryTranslator.compile( replacements, scalar ); return newQueryTranslator; }
ASTQueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory(); query = (QueryTranslatorImpl) translatorFactory.createQueryTranslator( namedQuery.name(), jpaQuery, java.util.Collections.EMPTY_MAP, hibernateSession.getFactory(), null);
private QueryTranslatorImpl compileQuery(String hql) { QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); QueryTranslatorImpl newQueryTranslator = (QueryTranslatorImpl) ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sessionFactory(), null ); newQueryTranslator.compile( Collections.emptyMap(), false ); return newQueryTranslator; } }
@Test @TestForIssue(jiraKey = "HHH-8579") public void testAliasWithLocale() { // Without the HHH-8579 fix, this will generate non-ascii query aliases. String hql = "from IAmAFoo"; QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); QueryTranslator queryTranslator = ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sessionFactory(), null ); queryTranslator.compile( Collections.EMPTY_MAP, false ); String sql = queryTranslator.getSQLString(); assertTrue( sql.matches( asciiRegex ) ); }
protected Exception compileBadHql(String hql, boolean scalar) { QueryTranslator newQueryTranslator; Map replacements = null; Exception newException = null; SessionFactoryImplementor factory = sessionFactory(); try { QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); newQueryTranslator = ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory, null ); newQueryTranslator.compile( replacements, scalar ); } catch ( QueryException e ) { newException = e; } catch ( MappingException e ) { newException = e; } assertNotNull( "Expected exception from compilation of '" + hql + "'!", newException ); return newException; }
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();
/** * Do not use in production code! Only for testing purposes only. Used for example during query engine upgrade. * Method provides translation from hibernate HQL query to plain SQL string query. * * @param sessionFactory * @param hqlQueryText * @return SQL string, null if hqlQueryText parameter is empty. */ public static String toSql(SessionFactory sessionFactory, String hqlQueryText) { Validate.notNull(sessionFactory, "Session factory must not be null."); if (StringUtils.isEmpty(hqlQueryText)) { return null; } final QueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory(); final SessionFactoryImplementor factory = (SessionFactoryImplementor) sessionFactory; final QueryTranslator translator = translatorFactory. createQueryTranslator( hqlQueryText, hqlQueryText, Collections.EMPTY_MAP, factory, null ); translator.compile(Collections.EMPTY_MAP, false); return translator.getSQLString(); } }
final Query query = sessionFactory.getCurrentSession().createQuery(hql); final QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); final QueryTranslatorImpl newQueryTranslator = (QueryTranslatorImpl) ast.createQueryTranslator(queryId, query.getQueryString(), Collections.EMPTY_MAP, (SessionFactoryImplementor) sessionFactory); newQueryTranslator.compile(null, false); sql = newQueryTranslator.getSQLString();
/** * Get the SQL query string from HQL Query. * * @param query * HQL query to convert to SQL * @return SQL query string from HQL */ public static String getSqlString(Query<?> query, Session session) { final QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); SessionFactory sessionFactory = session.getSessionFactory(); final QueryTranslatorImpl qt = (QueryTranslatorImpl) ast.createQueryTranslator("id", query.getQueryString(), Maps.newHashMap(), (SessionFactoryImplementor) sessionFactory, null); qt.compile(null, false); return qt.getSQLString(); }
/** * Get the SQL query string from HQL Query. * * @param query * HQL query to convert to SQL * @return SQL query string from HQL */ public static String getSqlString(Query<?> query, Session session) { final QueryTranslatorFactory ast = new ASTQueryTranslatorFactory(); SessionFactory sessionFactory = session.getSessionFactory(); final QueryTranslatorImpl qt = (QueryTranslatorImpl) ast.createQueryTranslator("id", query.getQueryString(), Maps.newHashMap(), (SessionFactoryImplementor) sessionFactory, null); qt.compile(null, false); return qt.getSQLString(); }