## org.hibernate.criterion
Interface Projection

All Superinterfaces:
  Serializable

All Known Subinterfaces:
  EnhancedProjection

All Known Implementing Classes:
  AggregateProjection, AliasedProjection, AvgProjection, CountProjection, Distinct, IdentifierProjection, ProjectionList, Property, PropertyProjection, RowCountProjection, SimpleProjection, SQLProjection

    public interface Projection

extends Serializable

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.

Author:
  Gavin King, Steve Ebersole
See Also:
  `Projections`, `Criteria`

Method Summary
`String[]` `getAliases()` Get the criteria-level aliases for this projection (ie.
`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(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`.
`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(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.
`Type[]` `getTypes(Criteria criteria, CriteriaQuery criteriaQuery)` Types returned by the rendered SQL `fragment`.
`Type[]` `getTypes(String alias, Criteria criteria, CriteriaQuery criteriaQuery)` Get the return types for a particular user-visible alias.
`boolean` `isGrouped()` Is this projection fragment (`SELECT` clause) also part of the `GROUP BY`
`String` `toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)` Render the SQL fragment to be used in the `GROUP BY` clause
`String` `toSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)` Render the SQL fragment to be used in the `SELECT` clause.

Method Detail

### toSqlString

    String toSqlString(Criteria criteria,
                       int position,
                       CriteriaQuery criteriaQuery)
                       throws HibernateException

  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

### toGroupSqlString

    String toGroupSqlString(Criteria criteria,
                            CriteriaQuery criteriaQuery)
                            throws HibernateException

  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

### getTypes

    Type[] getTypes(Criteria criteria,
                    CriteriaQuery criteriaQuery)
                    throws HibernateException

  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

### getTypes

    Type[] getTypes(String alias,
                    Criteria criteria,
                    CriteriaQuery criteriaQuery)
                    throws HibernateException

  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

### getColumnAliases

    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(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`. Hibernate always uses column aliases to extract data from the JDBC `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(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`, represents the number of columns rendered prior to this projection.
  Returns:
    The columns aliases.

### getColumnAliases

    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(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.

  Parameters:
    `alias` - The criteria-level alias
    `position` - Just as in `toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.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.

### getAliases

    String[] getAliases()

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

  Returns:
    The aliases

### isGrouped

    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.

Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.