public interface

Projection

implements Serializable
org.hibernate.criterion.Projection
Known Indirect Subclasses

Class Overview

An object-oriented representation of a query result set projection in a Criteria query. Built-in projection types are provided by the Projections factory class. This interface might be implemented by application classes that define custom projections.

Summary

Public Methods
abstract String[] getAliases()
Get the criteria-level aliases for this projection (ie.
abstract String[] getColumnAliases(int position)
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (toSqlString(Criteria, int, CriteriaQuery).
abstract String[] getColumnAliases(String alias, int position)
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (toSqlString(Criteria, int, CriteriaQuery) for a particular criteria-level alias.
abstract Type[] getTypes(String alias, Criteria criteria, CriteriaQuery criteriaQuery)
Get the return types for a particular user-visible alias.
abstract Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
Types returned by the rendered SQL fragment.
abstract boolean isGrouped()
Is this projection fragment (SELECT clause) also part of the GROUP BY
abstract String toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the GROUP BY clause
abstract String toSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the SELECT clause.

Public Methods

public abstract String[] getAliases ()

Get the criteria-level aliases for this projection (ie. the ones that will be passed to the ResultTransformer)

Returns
  • The aliases

public abstract String[] getColumnAliases (int position)

Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (toSqlString(Criteria, int, CriteriaQuery). Hibernate always uses column aliases to extract data from the JDBC java.sql.ResultSet, so it is important that these be implemented correctly in order for Hibernate to be able to extract these val;ues correctly.

Parameters
position Just as in toSqlString(Criteria, int, CriteriaQuery), represents the number of columns rendered prior to this projection.
Returns
  • The columns aliases.

public abstract String[] getColumnAliases (String alias, int position)

Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (toSqlString(Criteria, int, CriteriaQuery) for a particular criteria-level alias.

Parameters
alias The criteria-level alias
position Just as in toSqlString(Criteria, int, CriteriaQuery), represents the number of columns rendered prior to this projection.
Returns
  • The columns aliases pertaining to a particular criteria-level alias; expected to return null if this projection does not understand this alias.

public abstract Type[] getTypes (String alias, Criteria criteria, CriteriaQuery criteriaQuery)

Get the return types for a particular user-visible alias.

Differs from getTypes(org.hibernate.Criteria, CriteriaQuery) in that here we are only interested in the types related to the given criteria-level alias.

Parameters
alias The criteria-level alias for which to find types.
criteria The local criteria to which this project is attached (for resolution).
criteriaQuery The overall criteria query instance.
Returns
  • The return types; expected to return null if this projection does not understand this alias.
Throws
HibernateException Indicates a problem resolving the types

public abstract Type[] getTypes (Criteria criteria, CriteriaQuery criteriaQuery)

Types returned by the rendered SQL fragment. In other words what are the types that would represent the values this projection asked to be pulled into the result set?

Parameters
criteria The local criteria to which this project is attached (for resolution).
criteriaQuery The overall criteria query instance.
Returns
  • The return types.
Throws
HibernateException Indicates a problem resolving the types

public abstract boolean isGrouped ()

Is this projection fragment (SELECT clause) also part of the GROUP BY

Returns
  • True if the projection is also part of the GROUP BY; false otherwise.

public abstract String toGroupSqlString (Criteria criteria, CriteriaQuery criteriaQuery)

Render the SQL fragment to be used in the GROUP BY clause

Parameters
criteria The local criteria to which this project is attached (for resolution).
criteriaQuery The overall criteria query instance.
Returns
  • The SQL fragment to plug into the GROUP BY
Throws
HibernateException Indicates a problem performing the rendering

public abstract String toSqlString (Criteria criteria, int position, CriteriaQuery criteriaQuery)

Render the SQL fragment to be used in the SELECT clause.

Parameters
criteria The local criteria to which this project is attached (for resolution).
position The number of columns rendered in the SELECT clause before this projection. Generally speaking this is useful to ensure uniqueness of the individual columns aliases.
criteriaQuery The overall criteria query instance.
Returns
  • The SQL fragment to plug into the SELECT
Throws
HibernateException Indicates a problem performing the rendering