Package org.hibernate.criterion
Interface Projection
-
- All Superinterfaces:
java.io.Serializable
- All Known Subinterfaces:
EnhancedProjection
- All Known Implementing Classes:
AggregateProjection
,AliasedProjection
,AvgProjection
,CountProjection
,Distinct
,ForeingKeyProjection
,IdentifierProjection
,OracleSpatialProjection
,ProjectionList
,Property
,PropertyProjection
,RowCountProjection
,SimpleProjection
,SQLProjection
public interface Projection extends java.io.Serializable
An object-oriented representation of a query result set projection in aCriteria
query. Built-in projection types are provided by theProjections
factory class. This interface might be implemented by application classes that define custom projections.- See Also:
Projections
,Criteria
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String[]
getAliases()
Get the criteria-level aliases for this projection (ie.java.lang.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)
.java.lang.String[]
getColumnAliases(java.lang.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(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
.boolean
isGrouped()
Is this projection fragment (SELECT clause) also part of the GROUP BYjava.lang.String
toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the GROUP BY clausejava.lang.String
toSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)
Render the SQL fragment to be used in the SELECT clause.
-
-
-
Method Detail
-
toSqlString
java.lang.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
java.lang.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 SQLfragment
. 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(java.lang.String alias, Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException
Get the return types for a particular user-visible alias. Differs fromgetTypes(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
java.lang.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 JDBCResultSet
, 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 intoSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery)
, represents the number of columns rendered prior to this projection.- Returns:
- The columns aliases.
-
getColumnAliases
java.lang.String[] getColumnAliases(java.lang.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 aliasposition
- Just as intoSqlString(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
java.lang.String[] getAliases()
Get the criteria-level aliases for this projection (ie. the ones that will be passed to theResultTransformer
)- 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.
-
-