Package org.hibernate.criterion
Class ProjectionList
- java.lang.Object
-
- org.hibernate.criterion.ProjectionList
-
- All Implemented Interfaces:
Serializable
,EnhancedProjection
,Projection
public class ProjectionList extends Object implements EnhancedProjection
A projection that wraps other projections to allow selecting multiple values.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ProjectionList()
Constructs a ProjectionList
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ProjectionList
add(Projection projection)
Add a projection to this list of projectionsProjectionList
add(Projection projection, String alias)
Adds a projection to this list of projections after wrapping it with an aliasProjectionList
create()
Deprecated.an instance factory method does not make senseString[]
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
getLength()
Projection
getProjection(int i)
Access a wrapped projection by indexType[]
getTypes(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
.boolean
isGrouped()
Is this projection fragment (SELECT clause) also part of the GROUP BYString
toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the GROUP BY clauseString
toSqlString(Criteria criteria, int loc, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the SELECT clause.String
toString()
-
-
-
Constructor Detail
-
ProjectionList
protected ProjectionList()
Constructs a ProjectionList- See Also:
Projections.projectionList()
-
-
Method Detail
-
create
@Deprecated public ProjectionList create()
Deprecated.an instance factory method does not make senseLol- Returns:
- duh
- See Also:
Projections.projectionList()
-
add
public ProjectionList add(Projection projection)
Add a projection to this list of projections- Parameters:
projection
- The projection to add- Returns:
this
, for method chaining
-
add
public ProjectionList add(Projection projection, String alias)
Adds a projection to this list of projections after wrapping it with an alias- Parameters:
projection
- The projection to addalias
- The alias to apply to the projection- Returns:
this
, for method chaining- See Also:
Projections.alias(org.hibernate.criterion.Projection, java.lang.String)
-
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 interfaceProjection
- Returns:
- True if the projection is also part of the GROUP BY; false otherwise.
-
getTypes
public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException
Description copied from interface:Projection
Types 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:
getTypes
in interfaceProjection
- 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
-
toSqlString
public String toSqlString(Criteria criteria, int loc, CriteriaQuery criteriaQuery) throws HibernateException
Description copied from interface:Projection
Render the SQL fragment to be used in the SELECT clause.- Specified by:
toSqlString
in interfaceProjection
- Parameters:
criteria
- The local criteria to which this project is attached (for resolution).loc
- 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
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 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
- Throws:
HibernateException
- Indicates a problem performing the rendering
-
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 JDBCResultSet
, so it is important that these be implemented correctly in order for Hibernate to be able to extract these values correctly.- Specified by:
getColumnAliases
in 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 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 JDBCResultSet
, so it is important that these be implemented correctly in order for Hibernate to be able to extract these values correctly.- Specified by:
getColumnAliases
in 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 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 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 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 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.
-
getTypes
public Type[] getTypes(String alias, Criteria criteria, CriteriaQuery criteriaQuery)
Description copied from interface:Projection
Get 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:
getTypes
in 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.
-
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 theResultTransformer
)- Specified by:
getAliases
in interfaceProjection
- Returns:
- The aliases
-
getProjection
public Projection getProjection(int i)
Access a wrapped projection by index- Parameters:
i
- The index of the projection to return- Returns:
- The projection
-
getLength
public int getLength()
-
-