private Map checkNamedQueries() throws HibernateException { // Check named queries Map errors = new HashMap(); Set names = namedQueries.keySet(); log.info("Checking " + namedQueries.size() + " named queries"); for ( Iterator iterator = names.iterator(); iterator.hasNext(); ) { String queryName = (String) iterator.next(); NamedQueryDefinition q = (NamedQueryDefinition) namedQueries.get(queryName); // this will throw an error if there's something wrong. try { log.debug("Checking named query: " + queryName); //TODO: BUG! this currently fails for named queries for non-POJO entities getQuery( q.getQueryString(), false, CollectionHelper.EMPTY_MAP ); } catch (QueryException e) { errors.put(queryName, e); } catch (MappingException e) { errors.put(queryName, e); } } return errors; }
private QueryTranslator getRepresentativeQuery(String queryString) throws HibernateException { String[] queries = QuerySplitter.concreteQueries(queryString, this); if ( queries.length==0 ) throw new HibernateException("Query does not refer to any persistent classes: " + queryString); return getQuery( queries[0], true, CollectionHelper.EMPTY_MAP )[0]; }
private QueryTranslator[] getQueries(String query, boolean scalar) throws HibernateException { // take the union of the query spaces (ie. the queried tables) QueryTranslator[] q = factory.getQuery( query, scalar, getEnabledFilters() ); return prepareQueries(q); }
public ScrollableResults scroll(String query, QueryParameters queryParameters) throws HibernateException { if ( log.isTraceEnabled() ) { log.trace( "scroll: " + query ); queryParameters.traceParameters( factory ); } QueryTranslator[] q = factory.getQuery( query, false, getEnabledFilters() ); if ( q.length != 1 ) throw new QueryException( "implicit polymorphism not supported for scroll() queries" ); autoFlushIfRequired( q[0].getQuerySpaces() ); dontFlushFromFind++; //stops flush being called multiple times if this method is recursively called try { return q[0].scroll(queryParameters, this); } finally { dontFlushFromFind--; } }