CriteriaImpl c = (CriteriaImpl)query; SessionImpl s = (SessionImpl)c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory(); String[] implementors = factory.getImplementors( c.getEntityOrClassName() ); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String)f.get(loader);
try { CriteriaImpl c = (CriteriaImpl) criteria; SessionImpl s = (SessionImpl) c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor) s.getSessionFactory(); String[] implementors = factory.getImplementors(c.getEntityOrClassName()); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String) f.get(loader); } catch (Exception e) { }
Criteria criteria = session.createCriteria(User.class); CriteriaImpl c = (CriteriaImpl)criteria; SessionImpl s = (SessionImpl)c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory(); String[] implementors = factory.getImplementors( c.getEntityOrClassName() ); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String)f.get(loader);
SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory(); String[] implementors = factory.getImplementors( c.getEntityOrClassName() ); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true);
throw new QueryException( "The collection was unreferenced" ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleAfterFlush.getRole(), shallow, getEnabledFilters() ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleBeforeFlush.getRole(), shallow, getEnabledFilters() ); if ( autoFlushIfRequired( plan.getQuerySpaces() ) ) { throw new QueryException( "The collection was dereferenced" ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleAfterFlush.getRole(), shallow, getEnabledFilters() );
throw new QueryException( "The collection was unreferenced" ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleAfterFlush.getRole(), shallow, getEnabledFilters() ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleBeforeFlush.getRole(), shallow, getEnabledFilters() ); if ( autoFlushIfRequired( plan.getQuerySpaces() ) ) { throw new QueryException( "The collection was dereferenced" ); plan = factory.getQueryPlanCache().getFilterQueryPlan( filter, roleAfterFlush.getRole(), shallow, getEnabledFilters() );
@SuppressWarnings("unchecked") protected static XQuery createQuery( XSessionImplementor sessionProxy, String queryString) throws HibernateException { errorIfClosed(sessionProxy.getRawSessionImpl()); checkTransactionSynchStatus(sessionProxy.getRawSessionImpl()); XQueryPlan xQueryPlan = (XQueryPlan) sessionProxy .getFactory() .getQueryPlanCache() .getHQLQueryPlan(queryString, false, sessionProxy.getRawSessionImpl().getEnabledFilters()); XQuery query = new XQueryImpl( queryString, sessionProxy, xQueryPlan.getParameterMetadata()); query.setComment( queryString ); return query; }
@SuppressWarnings("unchecked") protected static XQuery createQuery( XSessionImplementor sessionProxy, NamedQueryDefinition namedQueryDefinition) throws HibernateException { String queryString = namedQueryDefinition.getQueryString(); XQueryPlan xQueryPlan = (XQueryPlan) sessionProxy .getFactory() .getQueryPlanCache() .getHQLQueryPlan(queryString, false, sessionProxy.getRawSessionImpl().getEnabledFilters() ); XQuery query = new XQueryImpl( queryString, namedQueryDefinition.getFlushMode(), sessionProxy, xQueryPlan.getParameterMetadata() ); query.setComment( "named HQL query " + namedQueryDefinition.getName() ); if ( namedQueryDefinition.getLockOptions() != null ) { query.setLockOptions( namedQueryDefinition.getLockOptions() ); } return query; }
@SuppressWarnings("unchecked") protected static long unlimitedCount( XSessionImplementor sessionProxy, String query, QueryParameters queryParameters, QueryType queryType, PathPlanKey pathPlanKey) throws HibernateException { errorIfClosed(sessionProxy.getRawSessionImpl()); checkTransactionSynchStatus(sessionProxy.getRawSessionImpl()); queryParameters.validateParameters(); XQueryPlanCache queryPlanCache = (XQueryPlanCache)sessionProxy.getFactory().getQueryPlanCache(); XQueryPlan plan = queryPlanCache.getHQLQueryPlan(query, pathPlanKey, false, sessionProxy.getRawSessionImpl().getEnabledFilters()); autoFlushIfRequired(sessionProxy.getRawSessionImpl(), plan.getQuerySpaces()); long count = 0; boolean success = false; //stops flush being called multiple times if this method is recursively called increaseDontFlushFromFind(sessionProxy.getRawSessionImpl()); try { count = plan.performUnlimitedCount(sessionProxy.getRawSessionImpl(), queryParameters, queryType); success = true; } finally { decreaseDontFlushFromFind(sessionProxy.getRawSessionImpl()); afterOperation(sessionProxy.getRawSessionImpl(), success); } return count; }
@SuppressWarnings("unchecked") protected static <T> List<T> list( XSessionImplementor sessionProxy, String query, QueryParameters queryParameters, QueryType queryType, PathPlanKey pathPlanKey) throws HibernateException { errorIfClosed(sessionProxy.getRawSessionImpl()); checkTransactionSynchStatus(sessionProxy.getRawSessionImpl()); queryParameters.validateParameters(); XQueryPlanCache queryPlanCache = (XQueryPlanCache)sessionProxy.getFactory().getQueryPlanCache(); XQueryPlan plan = queryPlanCache.getHQLQueryPlan(query, pathPlanKey, false, sessionProxy.getRawSessionImpl().getEnabledFilters()); autoFlushIfRequired(sessionProxy.getRawSessionImpl(), plan.getQuerySpaces()); List<T> results; boolean success = false; //stops flush being called multiple times if this method is recursively called increaseDontFlushFromFind(sessionProxy.getRawSessionImpl()); try { results = plan.performList(sessionProxy.getRawSessionImpl(), queryParameters, queryType); success = true; } finally { decreaseDontFlushFromFind(sessionProxy.getRawSessionImpl()); afterOperation(sessionProxy.getRawSessionImpl(), success); } return results; }
.getFactory() .getQueryPlanCache() .getHQLQueryPlan(queryString, false, sessionProxy.getRawSessionImpl().getEnabledFilters() ); XQuery query = new XQueryImpl(