## org.hibernate.criterion
Class SimpleProjection

    java.lang.Object
      org.hibernate.criterion.SimpleProjection

All Implemented Interfaces:
  Serializable, EnhancedProjection, Projection

Direct Known Subclasses:
  AggregateProjection, IdentifierProjection, PropertyProjection, RowCountProjection

    public abstract class SimpleProjection

extends Object
implements EnhancedProjection

A single-column projection that may be aliased

Author:
  Gavin King
See Also:
  Serialized Form

Constructor Summary
`SimpleProjection()`

Method Summary
`Projection` `as(String alias)`
`String[]` `getAliases()` Get the criteria-level aliases for this projection (ie.
`String[]` `getColumnAliases(int loc)` Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`.
`String[]` `getColumnAliases(int loc, Criteria criteria, CriteriaQuery criteriaQuery)` Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`.
`String[]` `getColumnAliases(String alias, int loc)` Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.
`String[]` `getColumnAliases(String alias, int loc, Criteria criteria, CriteriaQuery criteriaQuery)` Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.
`int` `getColumnCount(Criteria criteria, CriteriaQuery criteriaQuery)`
`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

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.hibernate.criterion.Projection
`getTypes, toSqlString`

Constructor Detail

### SimpleProjection

    public SimpleProjection()

Method Detail

### as

    public Projection as(String alias)

### getColumnAliases

    public String[] getColumnAliases(String alias,
                                     int loc)

  Description copied from interface: `Projection`
  Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.

  Specified by:
    `getColumnAliases` in interface `Projection`
  Parameters:
    `alias` - The criteria-level alias
    `loc` - Just as in `Projection.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.

### getColumnAliases

    public String[] getColumnAliases(String alias,
                                     int loc,
                                     Criteria criteria,
                                     CriteriaQuery criteriaQuery)

  Description copied from interface: `EnhancedProjection`
  Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)` for a particular criteria-level alias.

  Specified by:
    `getColumnAliases` in interface `EnhancedProjection`
  Parameters:
    `alias` - The criteria-level alias
    `loc` - Just as in `Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`, represents the number of columns rendered prior to this projection.
    `criteria` - The local criteria to which this project is attached (for resolution).
    `criteriaQuery` - The overall criteria query instance.
  Returns:
    The columns aliases pertaining to a particular criteria-level alias; expected to return null if this projection does not understand this alias.

### getTypes

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

  Description copied from interface: `Projection`
  Get the return types for a particular user-visible alias.

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

  Specified by:
    `getTypes` in interface `Projection`
  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

    public String[] getColumnAliases(int loc)

  Description copied from interface: `Projection`
  Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.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.

  Specified by:
    `getColumnAliases` in interface `Projection`
  Parameters:
    `loc` - Just as in `Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`, represents the number of columns rendered prior to this projection.
  Returns:
    The columns aliases.

### getColumnCount

    public int getColumnCount(Criteria criteria,
                              CriteriaQuery criteriaQuery)

### getColumnAliases

    public String[] getColumnAliases(int loc,
                                     Criteria criteria,
                                     CriteriaQuery criteriaQuery)

  Description copied from interface: `EnhancedProjection`
  Get the SQL column aliases used by this projection for the columns it writes for inclusion into the `SELECT` clause (`Projection.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.

  Specified by:
    `getColumnAliases` in interface `EnhancedProjection`
  Parameters:
    `loc` - Just as in `Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)`, represents the number of columns rendered prior to this projection.
    `criteria` - The local criteria to which this project is attached (for resolution).
    `criteriaQuery` - The overall criteria query instance.
  Returns:
    The columns aliases.

### getAliases

    public String[] getAliases()

  Description copied from interface: `Projection`
  Get the criteria-level aliases for this projection (ie. the ones that will be passed to the `ResultTransformer`)

  Specified by:
    `getAliases` in interface `Projection`
  Returns:
    The aliases

### toGroupSqlString

    public String toGroupSqlString(Criteria criteria,
                                   CriteriaQuery criteriaQuery)
                            throws HibernateException

  Description copied from interface: `Projection`
  Render the SQL fragment to be used in the `GROUP BY` clause

  Specified by:
    `toGroupSqlString` in interface `Projection`
  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

### isGrouped

    public boolean isGrouped()

  Description copied from interface: `Projection`
  Is this projection fragment (`SELECT` clause) also part of the `GROUP BY`

  Specified by:
    `isGrouped` in interface `Projection`
  Returns:
    True if the projection is also part of the `GROUP BY`; false otherwise.

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