001: //$Id: QueryImpl.java 8524 2005-11-04 21:28:49Z steveebersole $
002: package org.hibernate.impl;
003:
004: import java.util.HashMap;
005: import java.util.Iterator;
006: import java.util.List;
007: import java.util.Map;
008:
009: import org.hibernate.FlushMode;
010: import org.hibernate.HibernateException;
011: import org.hibernate.LockMode;
012: import org.hibernate.Query;
013: import org.hibernate.ScrollMode;
014: import org.hibernate.ScrollableResults;
015: import org.hibernate.engine.QueryParameters;
016: import org.hibernate.engine.SessionImplementor;
017: import org.hibernate.engine.query.ParameterMetadata;
018:
019: /**
020: * default implementation of the <tt>Query</tt> interface,
021: * for "ordinary" HQL queries (not collection filters)
022: * @see CollectionFilterImpl
023: * @author Gavin King
024: */
025: public class QueryImpl extends AbstractQueryImpl {
026:
027: private Map lockModes = new HashMap(2);
028:
029: public QueryImpl(String queryString, FlushMode flushMode,
030: SessionImplementor session,
031: ParameterMetadata parameterMetadata) {
032: super (queryString, flushMode, session, parameterMetadata);
033: }
034:
035: public QueryImpl(String queryString, SessionImplementor session,
036: ParameterMetadata parameterMetadata) {
037: this (queryString, null, session, parameterMetadata);
038: }
039:
040: public Iterator iterate() throws HibernateException {
041: verifyParameters();
042: Map namedParams = getNamedParams();
043: before();
044: try {
045: return getSession().iterate(
046: expandParameterLists(namedParams),
047: getQueryParameters(namedParams));
048: } finally {
049: after();
050: }
051: }
052:
053: public ScrollableResults scroll() throws HibernateException {
054: return scroll(ScrollMode.SCROLL_INSENSITIVE);
055: }
056:
057: public ScrollableResults scroll(ScrollMode scrollMode)
058: throws HibernateException {
059: verifyParameters();
060: Map namedParams = getNamedParams();
061: before();
062: QueryParameters qp = getQueryParameters(namedParams);
063: qp.setScrollMode(scrollMode);
064: try {
065: return getSession().scroll(
066: expandParameterLists(namedParams), qp);
067: } finally {
068: after();
069: }
070: }
071:
072: public List list() throws HibernateException {
073: verifyParameters();
074: Map namedParams = getNamedParams();
075: before();
076: try {
077: return getSession().list(expandParameterLists(namedParams),
078: getQueryParameters(namedParams));
079: } finally {
080: after();
081: }
082: }
083:
084: public int executeUpdate() throws HibernateException {
085: verifyParameters();
086: Map namedParams = getNamedParams();
087: before();
088: try {
089: return getSession().executeUpdate(
090: expandParameterLists(namedParams),
091: getQueryParameters(namedParams));
092: } finally {
093: after();
094: }
095: }
096:
097: public Query setLockMode(String alias, LockMode lockMode) {
098: lockModes.put(alias, lockMode);
099: return this ;
100: }
101:
102: protected Map getLockModes() {
103: return lockModes;
104: }
105:
106: }
|