public String[] getReturnAliases(String queryString) throws HibernateException { final ReturnMetadata metadata = queryPlanCache.getHQLQueryPlan( queryString, false, Collections.EMPTY_MAP ) .getReturnMetadata(); return metadata == null ? null : metadata.getReturnAliases(); }
public Type[] getReturnTypes(String queryString) throws HibernateException { final ReturnMetadata metadata = queryPlanCache.getHQLQueryPlan( queryString, false, Collections.EMPTY_MAP ) .getReturnMetadata(); return metadata == null ? null : metadata.getReturnTypes(); }
private boolean isSelect() { return getProducer().getFactory().getQueryPlanCache() .getHQLQueryPlan( getQueryString(), false, Collections.<String, Filter>emptyMap() ) .isSelect(); }
protected HQLQueryPlan getQueryPlan(String query, boolean shallow) throws HibernateException { return getFactory().getQueryPlanCache().getHQLQueryPlan( query, shallow, getLoadQueryInfluencers().getEnabledFilters() ); }
@SuppressWarnings({"unchecked", "WeakerAccess", "StatementWithEmptyBody"}) protected void resultClassChecking(Class resultClass, org.hibernate.Query hqlQuery) { final HQLQueryPlan queryPlan = getFactory().getQueryPlanCache().getHQLQueryPlan( hqlQuery.getQueryString(), false,
@Test public void testImplicitTupleNotInList() { final String hql = "from TheEntity e where e.compositeValue not in (:p1,:p2)"; HQLQueryPlan queryPlan = ( (SessionFactoryImplementor) sessionFactory ).getQueryPlanCache() .getHQLQueryPlan( hql, false, Collections.<String,Filter>emptyMap() ); assertEquals( 1, queryPlan.getSqlStrings().length ); System.out.println( " SQL : " + queryPlan.getSqlStrings()[0] ); assertTrue( queryPlan.getSqlStrings()[0].contains( "<>" ) ); }
@Test public void testImplicitTupleNotEquals() { final String hql = "from TheEntity e where e.compositeValue <> :p1"; HQLQueryPlan queryPlan = ( (SessionFactoryImplementor) sessionFactory ).getQueryPlanCache() .getHQLQueryPlan( hql, false, Collections.<String,Filter>emptyMap() ); assertEquals( 1, queryPlan.getSqlStrings().length ); System.out.println( " SQL : " + queryPlan.getSqlStrings()[0] ); assertTrue( queryPlan.getSqlStrings()[0].contains( "<>" ) ); }
@Test public void testHqlQueryPlan() { Session s = openSession(); QueryPlanCache cache = ( ( SessionImplementor ) s ).getFactory().getQueryPlanCache(); assertTrue( getEnabledFilters( s ).isEmpty() ); HQLQueryPlan plan1 = cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) ); HQLQueryPlan plan2 = cache.getHQLQueryPlan( "from Person where name is null", false, getEnabledFilters( s ) ); HQLQueryPlan plan3 = cache.getHQLQueryPlan( "from Person where name = :name", false, getEnabledFilters( s ) ); HQLQueryPlan plan4 = cache.getHQLQueryPlan( "from Person where name = ?1", false, getEnabledFilters( s ) ); assertNotSame( plan1, plan2 ); assertNotSame( plan1, plan3 ); assertNotSame( plan1, plan4 ); assertNotSame( plan2, plan3 ); assertNotSame( plan2, plan4 ); assertNotSame( plan3, plan4 ); assertSame( plan1, cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) ) ); assertSame( plan2, cache.getHQLQueryPlan( "from Person where name is null", false, getEnabledFilters( s ) ) ); assertSame( plan3, cache.getHQLQueryPlan( "from Person where name = :name", false, getEnabledFilters( s ) ) ); assertSame( plan4, cache.getHQLQueryPlan( "from Person where name = ?1", false, getEnabledFilters( s ) ) ); s.close(); }
QueryPlanCache cache = ( (SessionImplementor) s ).getFactory().getQueryPlanCache(); HQLQueryPlan plan1A = cache.getHQLQueryPlan( "from Person", true, getEnabledFilters( s ) ); HQLQueryPlan plan1B = cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) ); HQLQueryPlan plan2A = cache.getHQLQueryPlan( "from Person", true, getEnabledFilters( s ) ); HQLQueryPlan plan2B = cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) ); HQLQueryPlan plan3A = cache.getHQLQueryPlan( "from Person", true, getEnabledFilters( s ) ); HQLQueryPlan plan3B = cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) ); HQLQueryPlan plan4A = cache.getHQLQueryPlan( "from Person", true, getEnabledFilters( s ) ); HQLQueryPlan plan4B = cache.getHQLQueryPlan( "from Person", false, getEnabledFilters( s ) );
log.debugf( "Checking named query: %s", namedQueryDefinition.getName() ); queryPlanCache.getHQLQueryPlan( namedQueryDefinition.getQueryString(), false, Collections.EMPTY_MAP );
@Test public void testNonDistinctCountOfEntityWithCompositeId() { // the check here is all based on whether we had commas in the expressions inside the count final HQLQueryPlan plan = sessionFactory().getQueryPlanCache().getHQLQueryPlan( "select count(o) from Order o", false, Collections.EMPTY_MAP ); assertEquals( 1, plan.getTranslators().length ); final QueryTranslator translator = plan.getTranslators()[0]; final String generatedSql = translator.getSQLString(); final int countExpressionListStart = generatedSql.indexOf( "count(" ); final int countExpressionListEnd = generatedSql.indexOf( ")", countExpressionListStart ); final String countExpressionFragment = generatedSql.substring( countExpressionListStart+6, countExpressionListEnd+1 ); final boolean hadCommas = countExpressionFragment.contains( "," ); // set up the expectation based on Dialect... final boolean expectCommas = sessionFactory().getDialect().supportsTupleCounts(); assertEquals( expectCommas, hadCommas ); }
private void testMultiJoinAddition(String hql) { final HQLQueryPlan plan = sessionFactory().getQueryPlanCache().getHQLQueryPlan( hql, false, Collections.EMPTY_MAP ); assertEquals( 1, plan.getTranslators().length ); final QueryTranslator translator = plan.getTranslators()[0]; final String generatedSql = translator.getSQLString(); int sub1JoinColumnIndex = generatedSql.indexOf( ".base_sub_1" ); assertNotEquals( "Generated SQL doesn't contain a join for 'base' with 'PolymorphicSub1' via 'base_sub_1':\n" + generatedSql, -1, sub1JoinColumnIndex ); int sub2JoinColumnIndex = generatedSql.indexOf( ".base_sub_2" ); assertNotEquals( "Generated SQL doesn't contain a join for 'base' with 'PolymorphicSub2' via 'base_sub_2':\n" + generatedSql, -1, sub2JoinColumnIndex ); }
final HQLQueryPlan plan = sessionFactory().getQueryPlanCache().getHQLQueryPlan( "select count(distinct o) from Order o", false,
@Test @TestForIssue(jiraKey = "HHH-12413") public void testExpandingQueryStringMultipleTimesWorks() { doInHibernate( this::sessionFactory, session -> { QueryPlanCache cache = ( ( SessionImplementor ) session ).getFactory().getQueryPlanCache(); String queryString = "from Person where name in :names"; HQLQueryPlan plan = cache.getHQLQueryPlan( queryString, false, getEnabledFilters( session ) ); QueryParameterBindings queryParameterBindings = QueryParameterBindingsImpl.from( plan.getParameterMetadata(), (SessionFactoryImplementor) session.getSessionFactory(), false ); queryParameterBindings.getQueryParameterListBinding( "names" ).setBindValues( Arrays.asList( "a", "b" ) ); String actualQueryString = queryParameterBindings.expandListValuedParameters(queryString, (SharedSessionContractImplementor) session); String expectedQueryString = "from Person where name in (:names_0, :names_1)"; assertEquals( expectedQueryString, actualQueryString ); // Expanding the same query again should work as before actualQueryString = queryParameterBindings.expandListValuedParameters(queryString, (SharedSessionContractImplementor) session); assertEquals( expectedQueryString, actualQueryString ); } ); }
public String[] getReturnAliases(String queryString) throws HibernateException { return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); }
public String[] getReturnAliases(String queryString) throws HibernateException { return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); }
public Type[] getReturnTypes(String queryString) throws HibernateException { return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes(); }
protected HQLQueryPlan getHQLQueryPlan(String query, boolean shallow) throws HibernateException { return factory.getQueryPlanCache().getHQLQueryPlan( query, shallow, getEnabledFilters() ); }
protected HQLQueryPlan getHQLQueryPlan(String query, boolean shallow) throws HibernateException { return factory.getQueryPlanCache().getHQLQueryPlan( query, shallow, getEnabledFilters() ); }
private HQLQueryPlan getOriginalQueryPlan(SessionImplementor session, Query query) { SessionFactoryImplementor sfi = session.getFactory(); org.hibernate.Query hibernateQuery = query.unwrap(org.hibernate.Query.class); Map<String, TypedValue> namedParams = new HashMap<String, TypedValue>(hibernateAccess.getNamedParams(hibernateQuery)); String queryString = hibernateAccess.expandParameterLists(session, hibernateQuery, namedParams); return sfi.getQueryPlanCache().getHQLQueryPlan(queryString, false, Collections.EMPTY_MAP); }