Class AbstractQueryImpl

java.lang.Object
org.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.
  • Field Details

  • Constructor Details

  • Method Details

    • getParameterMetadata

      public ParameterMetadata getParameterMetadata()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getQueryString

      public final String getQueryString()
      Description copied from interface: Query
      Get the query string.
      Specified by:
      getQueryString in interface Query
      Returns:
      the query string
    • getSelection

      public RowSelection getSelection()
    • 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:
    • 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:
    • getCacheMode

      public CacheMode getCacheMode()
    • 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
    • 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
    • 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
    • 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
    • setCollectionKey

      public Query setCollectionKey(Serializable collectionKey)
    • isReadOnly

      public boolean isReadOnly()
      Should entities and proxies loaded by this Query be put in read-only mode? If the read-only/modifiable setting was not initialized, then the default read-only/modifiable setting for the persistence context is returned instead.
      Specified by:
      isReadOnly in interface Query
      Returns:
      true, entities and proxies loaded by the query will be put in read-only mode false, entities and proxies loaded by the query will be put in modifiable mode
      See Also:
    • setReadOnly

      public Query setReadOnly(boolean readOnly)
      Set the read-only/modifiable mode for entities and proxies loaded by this Query. This setting overrides the default setting for the persistence context.
      Specified by:
      setReadOnly in interface Query
      Parameters:
      readOnly - true, entities and proxies loaded by the query will be put in read-only mode false, entities and proxies loaded by the query will be put in modifiable mode
      See Also:
    • setResultTransformer

      public Query setResultTransformer(ResultTransformer transformer)
      Description copied from interface: Query
      Set a strategy for handling the query results. This can be used to change "shape" of the query result.
      Specified by:
      setResultTransformer in interface Query
      Parameters:
      transformer - The transformer to apply
      Returns:
      this (for method chaining)
    • setOptionalEntityName

      public void setOptionalEntityName(String optionalEntityName)
    • setOptionalId

      public void setOptionalId(Serializable optionalId)
    • setOptionalObject

      public void setOptionalObject(Object optionalObject)
    • getLockOptions

      public abstract LockOptions getLockOptions()
    • getNamedParams

      protected Map getNamedParams()
      Returns a shallow copy of the named parameter value map.
      Returns:
      Shallow copy of the named parameter value map
    • getNamedParameters

      public String[] getNamedParameters() throws HibernateException
      Returns an array representing all named parameter names encountered during (intial) parsing of the query.

      Note initial here means different things depending on whether this is a native-sql query or an HQL/filter query. For native-sql, a precursory inspection of the query string is performed specifically to locate defined parameters. For HQL/filter queries, this is the information returned from the query-translator. This distinction holds true for all parameter metadata exposed here.

      Specified by:
      getNamedParameters in interface Query
      Returns:
      Array of named parameter names.
      Throws:
      HibernateException
    • hasNamedParameters

      public boolean hasNamedParameters()
      Does this query contain named parameters?
      Returns:
      True if the query was found to contain named parameters; false otherwise;
    • getNamedParameterLists

      protected Map getNamedParameterLists()
      Retreive the value map for any named parameter lists (i.e., for auto-expansion) bound to this query.
      Returns:
      The parameter list value map.
    • getValues

      protected List getValues()
      Retreives the list of parameter values bound to this query for ordinal parameters.
      Returns:
      The ordinal parameter values.
    • getTypes

      protected List getTypes()
      Retreives the list of parameter types bound to this query for ordinal parameters.
      Returns:
      The ordinal parameter types.
    • verifyParameters

      protected void verifyParameters() throws QueryException
      Perform parameter validation. Used prior to executing the encapsulated query.
      Throws:
      QueryException
    • verifyParameters

      protected void verifyParameters(boolean reserveFirstParameter) throws HibernateException
      Perform parameter validation. Used prior to executing the encapsulated query.
      Parameters:
      reserveFirstParameter - if true, the first ? will not be verified since its needed for e.g. callable statements returning a out parameter
      Throws:
      HibernateException
    • 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
    • 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
    • setParameter

      public Query setParameter(int position, Object val) throws HibernateException
      Description copied from interface: Query
      Bind a value to a JDBC-style query parameter. The Hibernate type of the parameter is first detected via the usage/position in the query and if not sufficient secondly guessed 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. The Hibernate type of the parameter is first detected via the usage/position in the query and if not sufficient secondly guessed 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
    • determineType

      protected Type determineType(int paramPosition, Object paramValue, Type defaultType)
    • determineType

      protected Type determineType(int paramPosition, Object paramValue) throws HibernateException
      Throws:
      HibernateException
    • determineType

      protected Type determineType(String paramName, Object paramValue, Type defaultType)
    • determineType

      protected Type determineType(String paramName, Object paramValue) throws HibernateException
      Throws:
      HibernateException
    • determineType

      protected Type determineType(String paramName, Class clazz) throws HibernateException
      Throws:
      HibernateException
    • 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
    • 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
    • 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
    • expandParameterLists

      protected String expandParameterLists(Map namedParamsCopy)
      Warning: adds new parameters to the argument by side-effect, as well as mutating the query string!
    • setParameterList

      public Query setParameterList(String name, Collection vals) throws HibernateException
      Description copied from interface: Query
      Bind multiple values to a named query parameter. The Hibernate type of the parameter is first detected via the usage/position in the query and if not sufficient secondly guessed 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
    • 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. The Hibernate type of the parameter is first detected via the usage/position in the query and if not sufficient secondly guessed 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
    • setProperties

      public Query setProperties(Map map) throws HibernateException
      Description copied from interface: Query
      Bind the values of the given Map for each named parameters of the query, matching key names with parameter names and mapping value types to Hibernate types using hueristics.
      Specified by:
      setProperties in interface Query
      Parameters:
      map - a java.util.Map
      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
    • 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
    • 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
    • getRowSelection

      protected RowSelection getRowSelection()
    • typeArray

      public Type[] typeArray()
    • valueArray

      public Object[] valueArray()
    • getQueryParameters

      public QueryParameters getQueryParameters(Map namedParams)
    • before

      protected void before()
    • after

      protected void after()