translators[i] = queryTranslatorFactory .createQueryTranslator( hql, concreteQueryStrings[i], enabledFilters, factory, entityGraphQueryHint ); translators[i].compile( querySubstitutions, shallow );
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; }
@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 ) ); }
QueryTranslatorFactory classic = new ClassicQueryTranslatorFactory(); oldQueryTranslator = classic.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory, null ); oldQueryTranslator.compile( replacements, scalar );
QueryTranslator oldQueryTranslator = classic.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sessionFactory(), null ); oldQueryTranslator.compile( Collections.EMPTY_MAP, true); assertEquals( "incorrect return type count", 1, oldQueryTranslator.getReturnTypes().length ); assertEquals( "incorrect return type", LongType.INSTANCE, oldQueryTranslator.getReturnTypes()[0] );
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(); } }
.getQueryTranslatorFactory() .createQueryTranslator( hql, concreteQueryStrings[i], enabledFilters, factory ); translators[i].compile( factory.getSettings().getQuerySubstitutions(), shallow );
.getQueryTranslatorFactory() .createQueryTranslator( hql, concreteQueryStrings[i], enabledFilters, factory ); translators[i].compile( factory.getSettings().getQuerySubstitutions(), shallow );