Package org.hibernate.criterion
Class Distinct
- java.lang.Object
-
- org.hibernate.criterion.Distinct
-
- All Implemented Interfaces:
java.io.Serializable,EnhancedProjection,Projection
public class Distinct extends java.lang.Object implements EnhancedProjection
A wrappedProjection that is a wrapper around other projections to apply distinction.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Distinct(Projection wrappedProjection)Constructs a Distinct
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String[]getAliases()Get the criteria-level aliases for this projection (ie.java.lang.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).java.lang.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).java.lang.String[]getColumnAliases(java.lang.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.java.lang.String[]getColumnAliases(java.lang.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.Type[]getTypes(java.lang.String alias, Criteria criteria, CriteriaQuery criteriaQuery)Get the return types for a particular user-visible alias.Type[]getTypes(Criteria criteria, CriteriaQuery criteriaQuery)Types returned by the rendered SQLfragment.booleanisGrouped()Is this projection fragment (SELECT clause) also part of the GROUP BYjava.lang.StringtoGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)Render the SQL fragment to be used in the GROUP BY clausejava.lang.StringtoSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)Render the SQL fragment to be used in the SELECT clause.java.lang.StringtoString()
-
-
-
Constructor Detail
-
Distinct
public Distinct(Projection wrappedProjection)
Constructs a Distinct- Parameters:
wrappedProjection- The wrapped projection
-
-
Method Detail
-
toSqlString
public java.lang.String toSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)
Description copied from interface:ProjectionRender the SQL fragment to be used in the SELECT clause.- Specified by:
toSqlStringin interfaceProjection- 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
-
toGroupSqlString
public java.lang.String toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
Description copied from interface:ProjectionRender the SQL fragment to be used in the GROUP BY clause- Specified by:
toGroupSqlStringin interfaceProjection- 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
-
getTypes
public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
Description copied from interface:ProjectionTypes returned by the rendered SQLfragment. In other words what are the types that would represent the values this projection asked to be pulled into the result set?- Specified by:
getTypesin interfaceProjection- Parameters:
criteria- The local criteria to which this project is attached (for resolution).criteriaQuery- The overall criteria query instance.- Returns:
- The return types.
-
getTypes
public Type[] getTypes(java.lang.String alias, Criteria criteria, CriteriaQuery criteriaQuery)
Description copied from interface:ProjectionGet the return types for a particular user-visible alias. Differs fromProjection.getTypes(org.hibernate.Criteria, CriteriaQuery)in that here we are only interested in the types related to the given criteria-level alias.- Specified by:
getTypesin interfaceProjection- 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.
-
getColumnAliases
public java.lang.String[] getColumnAliases(int loc)
Description copied from interface:ProjectionGet 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 JDBCResultSet, so it is important that these be implemented correctly in order for Hibernate to be able to extract these values correctly.- Specified by:
getColumnAliasesin interfaceProjection- Parameters:
loc- Just as inProjection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery), represents the number of columns rendered prior to this projection.- Returns:
- The columns aliases.
-
getColumnAliases
public java.lang.String[] getColumnAliases(int loc, Criteria criteria, CriteriaQuery criteriaQuery)Description copied from interface:EnhancedProjectionGet 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 JDBCResultSet, so it is important that these be implemented correctly in order for Hibernate to be able to extract these values correctly.- Specified by:
getColumnAliasesin interfaceEnhancedProjection- Parameters:
loc- Just as inProjection.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.
-
getColumnAliases
public java.lang.String[] getColumnAliases(java.lang.String alias, int loc)Description copied from interface:ProjectionGet 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:
getColumnAliasesin interfaceProjection- Parameters:
alias- The criteria-level aliasloc- Just as inProjection.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 java.lang.String[] getColumnAliases(java.lang.String alias, int loc, Criteria criteria, CriteriaQuery criteriaQuery)Description copied from interface:EnhancedProjectionGet 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:
getColumnAliasesin interfaceEnhancedProjection- Parameters:
alias- The criteria-level aliasloc- Just as inProjection.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.
-
getAliases
public java.lang.String[] getAliases()
Description copied from interface:ProjectionGet the criteria-level aliases for this projection (ie. the ones that will be passed to theResultTransformer)- Specified by:
getAliasesin interfaceProjection- Returns:
- The aliases
-
isGrouped
public boolean isGrouped()
Description copied from interface:ProjectionIs this projection fragment (SELECT clause) also part of the GROUP BY- Specified by:
isGroupedin interfaceProjection- Returns:
- True if the projection is also part of the GROUP BY; false otherwise.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-