org.hibernate.impl
Class AbstractQueryImpl

java.lang.Object
  extended byorg.hibernate.impl.AbstractQueryImpl
All Implemented Interfaces:
Query
Direct Known Subclasses:
QueryImpl, SQLQueryImpl

public abstract class AbstractQueryImpl
extends Object
implements Query

Abstract implementation of the Query interface

Author:
Gavin King, Max Andersen

Field Summary
protected  SessionImplementor session
           
 
Constructor Summary
AbstractQueryImpl(String queryString, FlushMode flushMode, SessionImplementor session)
           
 
Method Summary
protected  void after()
           
protected  void before()
           
protected  String bindParameterLists(Map namedParamsCopy)
          Warning: adds new parameters to the argument by side-effect!
 int executeUpdate()
          Execute the update or delete statement.
protected abstract  Map getLockModes()
           
protected  Map getNamedParameterLists()
           
 String[] getNamedParameters()
          Return the names of all named parameters of the query.
protected  Map getNamedParams()
           
 QueryParameters getQueryParameters(Map namedParams)
           
 String getQueryString()
          Get the query string.
 String[] getReturnAliases()
          Return the HQL select clause aliases (if any)
 Type[] getReturnTypes()
          Return the Hibernate types of the query result set.
protected  RowSelection getRowSelection()
           
 RowSelection getSelection()
           
protected  List getTypes()
           
protected  List getValues()
           
 boolean isReadOnly()
           
 Query setBigDecimal(int position, BigDecimal number)
           
 Query setBigDecimal(String name, BigDecimal number)
           
 Query setBigInteger(int position, BigInteger number)
           
 Query setBigInteger(String name, BigInteger number)
           
 Query setBinary(int position, byte[] val)
           
 Query setBinary(String name, byte[] val)
           
 Query setBoolean(int position, boolean val)
           
 Query setBoolean(String name, boolean val)
           
 Query setByte(int position, byte val)
           
 Query setByte(String name, byte val)
           
 Query setCacheable(boolean cacheable)
          Enable caching of this query result set.
 Query setCacheMode(CacheMode cacheMode)
          Override the current session cache mode, just for this query.
 Query setCacheRegion(String cacheRegion)
          Set the name of the cache region.
 Query setCalendar(int position, Calendar calendar)
           
 Query setCalendar(String name, Calendar calendar)
           
 Query setCalendarDate(int position, Calendar calendar)
           
 Query setCalendarDate(String name, Calendar calendar)
           
 Query setCharacter(int position, char val)
           
 Query setCharacter(String name, char val)
           
 Query setCollectionKey(Serializable collectionKey)
           
 Query setComment(String comment)
          Add a comment to the generated SQL.
 Query setDate(int position, Date date)
           
 Query setDate(String name, Date date)
           
 Query setDouble(int position, double val)
           
 Query setDouble(String name, double val)
           
 Query setEntity(int position, Object val)
          Bind an instance of a mapped persistent class to a JDBC-style query parameter.
 Query setEntity(String name, Object val)
          Bind an instance of a mapped persistent class to a named query parameter.
 Query setFetchSize(int fetchSize)
          Set a fetch size for the underlying JDBC query.
 Query setFirstResult(int firstResult)
          Set the first row to retrieve.
 Query setFloat(int position, float val)
           
 Query setFloat(String name, float val)
           
 Query setFlushMode(FlushMode flushMode)
          Override the current session flush mode, just for this query.
 Query setInteger(int position, int val)
           
 Query setInteger(String name, int val)
           
 Query setLocale(int position, Locale locale)
           
 Query setLocale(String name, Locale locale)
           
 Query setLong(int position, long val)
           
 Query setLong(String name, long val)
           
 Query setMaxResults(int maxResults)
          Set the maximum number of rows to retrieve.
 Query setParameter(int position, Object val)
          Bind a value to a JDBC-style query parameter, guessing the Hibernate type from the class of the given object.
 Query setParameter(int position, Object val, Type type)
          Bind a value to a JDBC-style query parameter.
 Query setParameter(String name, Object val)
          Bind a value to a named query parameter, guessing the Hibernate type from the class of the given object.
 Query setParameter(String name, Object val, Type type)
          Bind a value to a named query parameter.
 Query setParameterList(String name, Collection vals)
          Bind multiple values to a named query parameter, guessing the Hibernate type from the class of the first object in the collection.
 Query setParameterList(String name, Collection vals, Type type)
          Bind multiple values to a named query parameter.
 Query setParameterList(String name, Object[] vals)
          Bind multiple values to a named query parameter, guessing the Hibernate type from the class of the first object in the array.
 Query setParameterList(String name, Object[] vals, Type type)
          Bind multiple values to a named query parameter.
 Query setParameters(Object[] values, Type[] types)
          Bind values and types to positional parameters.
 Query setProperties(Object bean)
          Bind the property values of the given bean to named parameters of the query, matching property names with parameter names and mapping property types to Hibernate types using hueristics.
 Query setReadOnly(boolean readOnly)
          Entities retrieved by this query will be loaded in a read-only mode where Hibernate will never dirty-check them or make changes persistent.
 Query setSerializable(int position, Serializable val)
           
 Query setSerializable(String name, Serializable val)
           
 Query setShort(int position, short val)
           
 Query setShort(String name, short val)
           
 Query setString(int position, String val)
           
 Query setString(String name, String val)
           
 Query setText(int position, String val)
           
 Query setText(String name, String val)
           
 Query setTime(int position, Date date)
           
 Query setTime(String name, Date date)
           
 Query setTimeout(int timeout)
          Set a timeout for the underlying JDBC query.
 Query setTimestamp(int position, Date date)
           
 Query setTimestamp(String name, Date date)
           
 String toString()
           
 Type[] typeArray()
           
 Object uniqueResult()
          Convenience method to return a single instance that matches the query, or null if the query returns no results.
 Object[] valueArray()
           
protected  void verifyParameters()
           
protected  void verifyParameters(boolean reserveFirstParameter)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.hibernate.Query
iterate, list, scroll, scroll, setLockMode
 

Field Detail

session

protected final SessionImplementor session
Constructor Detail

AbstractQueryImpl

public AbstractQueryImpl(String queryString,
                         FlushMode flushMode,
                         SessionImplementor session)
Method Detail

getQueryString

public final String getQueryString()
Description copied from interface: Query
Get the query string.

Specified by:
getQueryString in interface Query
Returns:
the query string

setFlushMode

public Query setFlushMode(FlushMode flushMode)
Description copied from interface: Query
Override the current session flush mode, just for this query.

Specified by:
setFlushMode in interface Query
See Also:
FlushMode

setCacheMode

public Query setCacheMode(CacheMode cacheMode)
Description copied from interface: Query
Override the current session cache mode, just for this query.

Specified by:
setCacheMode in interface Query
See Also:
CacheMode

getNamedParams

protected Map getNamedParams()

verifyParameters

protected void verifyParameters()
                         throws QueryException
Throws:
QueryException

verifyParameters

protected void verifyParameters(boolean reserveFirstParameter)
                         throws HibernateException
Parameters:
reserveFirstParameter - if true, the first ? will not be verified since its needed for e.g. callable statements returning a out parameter
Throws:
HibernateException

getNamedParameterLists

protected Map getNamedParameterLists()

getValues

protected List getValues()

getTypes

protected List getTypes()

getSelection

public RowSelection getSelection()

setMaxResults

public Query setMaxResults(int maxResults)
Description copied from interface: Query
Set the maximum number of rows to retrieve. If not set, there is no limit to the number of rows retrieved.

Specified by:
setMaxResults in interface Query
Parameters:
maxResults - the maximum number of rows

setTimeout

public Query setTimeout(int timeout)
Description copied from interface: Query
Set a timeout for the underlying JDBC query.

Specified by:
setTimeout in interface Query
Parameters:
timeout - the timeout in seconds

setFetchSize

public Query setFetchSize(int fetchSize)
Description copied from interface: Query
Set a fetch size for the underlying JDBC query.

Specified by:
setFetchSize in interface Query
Parameters:
fetchSize - the fetch size

setFirstResult

public Query setFirstResult(int firstResult)
Description copied from interface: Query
Set the first row to retrieve. If not set, rows will be retrieved beginnning from row 0.

Specified by:
setFirstResult in interface Query
Parameters:
firstResult - a row number, numbered from 0

setParameter

public Query setParameter(int position,
                          Object val,
                          Type type)
Description copied from interface: Query
Bind a value to a JDBC-style query parameter.

Specified by:
setParameter in interface Query
Parameters:
position - the position of the parameter in the query string, numbered from 0.
val - the possibly-null parameter value
type - the Hibernate type

setString

public Query setString(int position,
                       String val)
Specified by:
setString in interface Query

setCharacter

public Query setCharacter(int position,
                          char val)
Specified by:
setCharacter in interface Query

setBoolean

public Query setBoolean(int position,
                        boolean val)
Specified by:
setBoolean in interface Query

setByte

public Query setByte(int position,
                     byte val)
Specified by:
setByte in interface Query

setShort

public Query setShort(int position,
                      short val)
Specified by:
setShort in interface Query

setInteger

public Query setInteger(int position,
                        int val)
Specified by:
setInteger in interface Query

setLong

public Query setLong(int position,
                     long val)
Specified by:
setLong in interface Query

setFloat

public Query setFloat(int position,
                      float val)
Specified by:
setFloat in interface Query

setDouble

public Query setDouble(int position,
                       double val)
Specified by:
setDouble in interface Query

setBinary

public Query setBinary(int position,
                       byte[] val)
Specified by:
setBinary in interface Query

setText

public Query setText(int position,
                     String val)
Specified by:
setText in interface Query

setSerializable

public Query setSerializable(int position,
                             Serializable val)
Specified by:
setSerializable in interface Query

setDate

public Query setDate(int position,
                     Date date)
Specified by:
setDate in interface Query

setTime

public Query setTime(int position,
                     Date date)
Specified by:
setTime in interface Query

setTimestamp

public Query setTimestamp(int position,
                          Date date)
Specified by:
setTimestamp in interface Query

setEntity

public Query setEntity(int position,
                       Object val)
Description copied from interface: Query
Bind an instance of a mapped persistent class to a JDBC-style query parameter.

Specified by:
setEntity in interface Query
Parameters:
position - the position of the parameter in the query string, numbered from 0.
val - a non-null instance of a persistent class

setLocale

public Query setLocale(int position,
                       Locale locale)
Specified by:
setLocale in interface Query

setCalendar

public Query setCalendar(int position,
                         Calendar calendar)
Specified by:
setCalendar in interface Query

setCalendarDate

public Query setCalendarDate(int position,
                             Calendar calendar)
Specified by:
setCalendarDate in interface Query

setBinary

public Query setBinary(String name,
                       byte[] val)
Specified by:
setBinary in interface Query

setText

public Query setText(String name,
                     String val)
Specified by:
setText in interface Query

setBoolean

public Query setBoolean(String name,
                        boolean val)
Specified by:
setBoolean in interface Query

setByte

public Query setByte(String name,
                     byte val)
Specified by:
setByte in interface Query

setCharacter

public Query setCharacter(String name,
                          char val)
Specified by:
setCharacter in interface Query

setDate

public Query setDate(String name,
                     Date date)
Specified by:
setDate in interface Query

setDouble

public Query setDouble(String name,
                       double val)
Specified by:
setDouble in interface Query

setEntity

public Query setEntity(String name,
                       Object val)
Description copied from interface: Query
Bind an instance of a mapped persistent class to a named query parameter.

Specified by:
setEntity in interface Query
Parameters:
name - the name of the parameter
val - a non-null instance of a persistent class

setFloat

public Query setFloat(String name,
                      float val)
Specified by:
setFloat in interface Query

setInteger

public Query setInteger(String name,
                        int val)
Specified by:
setInteger in interface Query

setLocale

public Query setLocale(String name,
                       Locale locale)
Specified by:
setLocale in interface Query

setCalendar

public Query setCalendar(String name,
                         Calendar calendar)
Specified by:
setCalendar in interface Query

setCalendarDate

public Query setCalendarDate(String name,
                             Calendar calendar)
Specified by:
setCalendarDate in interface Query

setLong

public Query setLong(String name,
                     long val)
Specified by:
setLong in interface Query

setParameter

public Query setParameter(String name,
                          Object val,
                          Type type)
Description copied from interface: Query
Bind a value to a named query parameter.

Specified by:
setParameter in interface Query
Parameters:
name - the name of the parameter
val - the possibly-null parameter value
type - the Hibernate type

setSerializable

public Query setSerializable(String name,
                             Serializable val)
Specified by:
setSerializable in interface Query

setShort

public Query setShort(String name,
                      short val)
Specified by:
setShort in interface Query

setString

public Query setString(String name,
                       String val)
Specified by:
setString in interface Query

setTime

public Query setTime(String name,
                     Date date)
Specified by:
setTime in interface Query

setTimestamp

public Query setTimestamp(String name,
                          Date date)
Specified by:
setTimestamp in interface Query

setBigDecimal

public Query setBigDecimal(int position,
                           BigDecimal number)
Specified by:
setBigDecimal in interface Query

setBigDecimal

public Query setBigDecimal(String name,
                           BigDecimal number)
Specified by:
setBigDecimal in interface Query

setBigInteger

public Query setBigInteger(int position,
                           BigInteger number)
Specified by:
setBigInteger in interface Query

setBigInteger

public Query setBigInteger(String name,
                           BigInteger number)
Specified by:
setBigInteger in interface Query

setParameter

public Query setParameter(int position,
                          Object val)
                   throws HibernateException
Description copied from interface: Query
Bind a value to a JDBC-style query parameter, guessing the Hibernate type from the class of the given object.

Specified by:
setParameter in interface Query
Parameters:
position - the position of the parameter in the query string, numbered from 0.
val - the non-null parameter value
Throws:
HibernateException - if no type could be determined

setParameter

public Query setParameter(String name,
                          Object val)
                   throws HibernateException
Description copied from interface: Query
Bind a value to a named query parameter, guessing the Hibernate type from the class of the given object.

Specified by:
setParameter in interface Query
Parameters:
name - the name of the parameter
val - the non-null parameter value
Throws:
HibernateException - if no type could be determined

getReturnTypes

public Type[] getReturnTypes()
                      throws HibernateException
Description copied from interface: Query
Return the Hibernate types of the query result set.

Specified by:
getReturnTypes in interface Query
Returns:
an array of types
Throws:
HibernateException

getReturnAliases

public String[] getReturnAliases()
                          throws HibernateException
Description copied from interface: Query
Return the HQL select clause aliases (if any)

Specified by:
getReturnAliases in interface Query
Returns:
an array of aliases as strings
Throws:
HibernateException

setParameterList

public Query setParameterList(String name,
                              Collection vals,
                              Type type)
                       throws HibernateException
Description copied from interface: Query
Bind multiple values to a named query parameter. This is useful for binding a list of values to an expression such as foo.bar in (:value_list).

Specified by:
setParameterList in interface Query
Parameters:
name - the name of the parameter
vals - a collection of values to list
type - the Hibernate type of the values
Throws:
HibernateException

bindParameterLists

protected String bindParameterLists(Map namedParamsCopy)
Warning: adds new parameters to the argument by side-effect!


setParameterList

public Query setParameterList(String name,
                              Collection vals)
                       throws HibernateException
Description copied from interface: Query
Bind multiple values to a named query parameter, guessing the Hibernate type from the class of the first object in the collection. This is useful for binding a list of values to an expression such as foo.bar in (:value_list).

Specified by:
setParameterList in interface Query
Parameters:
name - the name of the parameter
vals - a collection of values to list
Throws:
HibernateException

getNamedParameters

public String[] getNamedParameters()
                            throws HibernateException
Description copied from interface: Query
Return the names of all named parameters of the query.

Specified by:
getNamedParameters in interface Query
Returns:
the parameter names, in no particular order
Throws:
HibernateException

setProperties

public Query setProperties(Object bean)
                    throws HibernateException
Description copied from interface: Query
Bind the property values of the given bean to named parameters of the query, matching property names with parameter names and mapping property types to Hibernate types using hueristics.

Specified by:
setProperties in interface Query
Parameters:
bean - any JavaBean or POJO
Throws:
HibernateException

setParameterList

public Query setParameterList(String name,
                              Object[] vals,
                              Type type)
                       throws HibernateException
Description copied from interface: Query
Bind multiple values to a named query parameter. This is useful for binding a list of values to an expression such as foo.bar in (:value_list).

Specified by:
setParameterList in interface Query
Parameters:
name - the name of the parameter
vals - a collection of values to list
type - the Hibernate type of the values
Throws:
HibernateException

setParameterList

public Query setParameterList(String name,
                              Object[] vals)
                       throws HibernateException
Description copied from interface: Query
Bind multiple values to a named query parameter, guessing the Hibernate type from the class of the first object in the array. This is useful for binding a list of values to an expression such as foo.bar in (:value_list).

Specified by:
setParameterList in interface Query
Parameters:
name - the name of the parameter
vals - a collection of values to list
Throws:
HibernateException

uniqueResult

public Object uniqueResult()
                    throws HibernateException
Description copied from interface: Query
Convenience method to return a single instance that matches the query, or null if the query returns no results.

Specified by:
uniqueResult in interface Query
Returns:
the single result or null
Throws:
HibernateException - if there is more than one matching result

executeUpdate

public int executeUpdate()
                  throws HibernateException
Description copied from interface: Query
Execute the update or delete statement.

The semantics are compliant with the ejb3 Query.executeUpdate() method.

Specified by:
executeUpdate in interface Query
Returns:
The number of entities updated or deleted.
Throws:
HibernateException

getRowSelection

protected RowSelection getRowSelection()

typeArray

public Type[] typeArray()

valueArray

public Object[] valueArray()

getQueryParameters

public QueryParameters getQueryParameters(Map namedParams)

getLockModes

protected abstract Map getLockModes()

setCacheable

public Query setCacheable(boolean cacheable)
Description copied from interface: Query
Enable caching of this query result set.

Specified by:
setCacheable in interface Query
Parameters:
cacheable - Should the query results be cacheable?

setCacheRegion

public Query setCacheRegion(String cacheRegion)
Description copied from interface: Query
Set the name of the cache region.

Specified by:
setCacheRegion in interface Query
Parameters:
cacheRegion - the name of a query cache region, or null for the default query cache

setComment

public Query setComment(String comment)
Description copied from interface: Query
Add a comment to the generated SQL.

Specified by:
setComment in interface Query
Parameters:
comment - a human-readable string

toString

public String toString()

before

protected void before()

after

protected void after()

setCollectionKey

public Query setCollectionKey(Serializable collectionKey)

setParameters

public Query setParameters(Object[] values,
                           Type[] types)
Description copied from interface: Query
Bind values and types to positional parameters.

Specified by:
setParameters in interface Query

isReadOnly

public boolean isReadOnly()

setReadOnly

public Query setReadOnly(boolean readOnly)
Description copied from interface: Query
Entities retrieved by this query will be loaded in a read-only mode where Hibernate will never dirty-check them or make changes persistent.

Specified by:
setReadOnly in interface Query