本文整理了Java中org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan
方法的一些代码示例,展示了QueryPlanCache.getHQLQueryPlan
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryPlanCache.getHQLQueryPlan
方法的具体详情如下:
包路径:org.hibernate.engine.query.spi.QueryPlanCache
类名称: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);
}
内容来源于网络,如有侵权,请联系作者删除!