public class ProjectionList extends Object implements EnhancedProjection
A projection that wraps other projections to allow selecting multiple values.
Modifier | Constructor and Description |
---|---|
protected |
ProjectionList()
Constructs a ProjectionList
|
Modifier and Type | Method and Description |
---|---|
ProjectionList |
add(Projection projection)
Add a projection to this list of projections
|
ProjectionList |
add(Projection projection,
String alias)
Adds a projection to this list of projections after wrapping it with an alias
|
ProjectionList |
create()
Deprecated.
an instance factory method does not make sense
|
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
<tt>SELECT</tt> 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
<tt>SELECT</tt> 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
<tt>SELECT</tt> clause (
Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) <i>for a particular criteria-level alias</i>. |
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
<tt>SELECT</tt> clause (
Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) <i>for a particular criteria-level alias</i>. |
int |
getLength() |
Projection |
getProjection(int i)
Access a wrapped projection by index
|
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 (<tt>SELECT</tt> clause) also part of the <tt>GROUP BY</tt>
|
String |
toGroupSqlString(Criteria criteria,
CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the <tt>GROUP BY</tt> clause
|
String |
toSqlString(Criteria criteria,
int loc,
CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the <tt>SELECT</tt> clause.
|
String |
toString() |
protected ProjectionList()
Constructs a ProjectionList
Projections.projectionList()
@Deprecated public ProjectionList create()
Lol
Projections.projectionList()
public ProjectionList add(Projection projection)
Add a projection to this list of projections
projection
- The projection to addthis
, for method chainingpublic ProjectionList add(Projection projection, String alias)
Adds a projection to this list of projections after wrapping it with an alias
projection
- The projection to addalias
- The alias to apply to the projectionthis
, for method chainingProjections.alias(org.hibernate.criterion.Projection, java.lang.String)
public boolean isGrouped()
Projection
Is this projection fragment (<tt>SELECT</tt> clause) also part of the <tt>GROUP BY</tt>
isGrouped
in interface Projection
public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException
Projection
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?
getTypes
in interface Projection
criteria
- The local criteria to which this project is attached (for resolution).criteriaQuery
- The overall criteria query instance.HibernateException
- Indicates a problem resolving the typespublic String toSqlString(Criteria criteria, int loc, CriteriaQuery criteriaQuery) throws HibernateException
Projection
Render the SQL fragment to be used in the <tt>SELECT</tt> clause.
toSqlString
in interface Projection
criteria
- The local criteria to which this project is attached (for resolution).loc
- The number of columns rendered in the <tt>SELECT</tt> clause before this projection. Generally
speaking this is useful to ensure uniqueness of the individual columns aliases.criteriaQuery
- The overall criteria query instance.HibernateException
- Indicates a problem performing the renderingpublic String toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException
Projection
Render the SQL fragment to be used in the <tt>GROUP BY</tt> clause
toGroupSqlString
in interface Projection
criteria
- The local criteria to which this project is attached (for resolution).criteriaQuery
- The overall criteria query instance.HibernateException
- Indicates a problem performing the renderingpublic String[] getColumnAliases(int loc)
Projection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the
<tt>SELECT</tt> 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.
getColumnAliases
in interface Projection
loc
- Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
, represents the number of <b>columns</b> rendered
prior to this projection.public String[] getColumnAliases(int loc, Criteria criteria, CriteriaQuery criteriaQuery)
EnhancedProjection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the
<tt>SELECT</tt> 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.
getColumnAliases
in interface EnhancedProjection
loc
- Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
, represents the number of <b>columns</b> rendered
prior to this projection.criteria
- The local criteria to which this project is attached (for resolution).criteriaQuery
- The overall criteria query instance.public String[] getColumnAliases(String alias, int loc)
Projection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the
<tt>SELECT</tt> clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
<i>for a particular criteria-level alias</i>.
getColumnAliases
in interface Projection
alias
- The criteria-level aliasloc
- Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
, represents the number of <b>columns</b> rendered
prior to this projection.public String[] getColumnAliases(String alias, int loc, Criteria criteria, CriteriaQuery criteriaQuery)
EnhancedProjection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the
<tt>SELECT</tt> clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
<i>for a particular criteria-level alias</i>.
getColumnAliases
in interface EnhancedProjection
alias
- The criteria-level aliasloc
- Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
, represents the number of <b>columns</b> rendered
prior to this projection.criteria
- The local criteria to which this project is attached (for resolution).criteriaQuery
- The overall criteria query instance.public Type[] getTypes(String alias, Criteria criteria, CriteriaQuery criteriaQuery)
Projection
Get the return types for a particular user-visible alias.
<p/>
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.
getTypes
in interface Projection
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.public String[] getAliases()
Projection
Get the criteria-level aliases for this projection (ie. the ones that will be passed to the
ResultTransformer
)
getAliases
in interface Projection
public Projection getProjection(int i)
Access a wrapped projection by index
i
- The index of the projection to returnpublic int getLength()
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.