org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(71)

本文整理了Java中org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan方法的一些代码示例,展示了QueryPlanCache.getHQLQueryPlan的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryPlanCache.getHQLQueryPlan方法的具体详情如下:
包路径:org.hibernate.engine.query.spi.QueryPlanCache
类名称:QueryPlanCache
方法名:getHQLQueryPlan

QueryPlanCache.getHQLQueryPlan介绍

[英]Get the query plan for the given HQL query, creating it and caching it if not already cached
[中]获取给定HQL查询的查询计划,创建并缓存它(如果尚未缓存)

代码示例

代码示例来源:origin: hibernate/hibernate-orm

public String[] getReturnAliases(String queryString) throws HibernateException {
  final ReturnMetadata metadata = queryPlanCache.getHQLQueryPlan( queryString, false, Collections.EMPTY_MAP )
      .getReturnMetadata();
  return metadata == null ? null : metadata.getReturnAliases();
}

代码示例来源:origin: hibernate/hibernate-orm

public Type[] getReturnTypes(String queryString) throws HibernateException {
  final ReturnMetadata metadata = queryPlanCache.getHQLQueryPlan( queryString, false, Collections.EMPTY_MAP )
      .getReturnMetadata();
  return metadata == null ? null : metadata.getReturnTypes();
}

代码示例来源:origin: hibernate/hibernate-orm

private boolean isSelect() {
  return getProducer().getFactory().getQueryPlanCache()
      .getHQLQueryPlan( getQueryString(), false, Collections.<String, Filter>emptyMap() )
      .isSelect();
}

代码示例来源:origin: hibernate/hibernate-orm

protected HQLQueryPlan getQueryPlan(String query, boolean shallow) throws HibernateException {
  return getFactory().getQueryPlanCache().getHQLQueryPlan( query, shallow, getLoadQueryInfluencers().getEnabledFilters() );
}

代码示例来源:origin: hibernate/hibernate-orm

@SuppressWarnings({"unchecked", "WeakerAccess", "StatementWithEmptyBody"})
protected void resultClassChecking(Class resultClass, org.hibernate.Query hqlQuery) {
  final HQLQueryPlan queryPlan = getFactory().getQueryPlanCache().getHQLQueryPlan(
      hqlQuery.getQueryString(),
      false,

代码示例来源:origin: hibernate/hibernate-orm

@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( "<>" ) );
}

代码示例来源:origin: hibernate/hibernate-orm

@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( "<>" ) );
}

代码示例来源:origin: hibernate/hibernate-orm

@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();
}

代码示例来源:origin: hibernate/hibernate-orm

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 ) );

代码示例来源:origin: hibernate/hibernate-orm

log.debugf( "Checking named query: %s", namedQueryDefinition.getName() );
queryPlanCache.getHQLQueryPlan( namedQueryDefinition.getQueryString(), false, Collections.EMPTY_MAP );

代码示例来源:origin: hibernate/hibernate-orm

@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 );
}

代码示例来源:origin: hibernate/hibernate-orm

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
  );
}

代码示例来源:origin: hibernate/hibernate-orm

final HQLQueryPlan plan = sessionFactory().getQueryPlanCache().getHQLQueryPlan(
    "select count(distinct o) from Order o",
    false,

代码示例来源:origin: hibernate/hibernate-orm

@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
    );
  } );
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate.core

public String[] getReturnAliases(String queryString) throws HibernateException {
  return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases();
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate

public String[] getReturnAliases(String queryString) throws HibernateException {
  return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases();
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate.core

public Type[] getReturnTypes(String queryString) throws HibernateException {
  return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes();
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate

protected HQLQueryPlan getHQLQueryPlan(String query, boolean shallow) throws HibernateException {
  return factory.getQueryPlanCache().getHQLQueryPlan( query, shallow, getEnabledFilters() );
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate.core

protected HQLQueryPlan getHQLQueryPlan(String query, boolean shallow) throws HibernateException {
  return factory.getQueryPlanCache().getHQLQueryPlan( query, shallow, getEnabledFilters() );
}

代码示例来源:origin: Blazebit/blaze-persistence

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);
}

相关文章