Besides using it for creating criteria subqueries, Detached Criteria Builder can also be used in conjunction with the new detachedSQLProjection() method to return a projected result based on a subquery. The detachedSQLProjection() method can be called just like any other Criteria Builder projection.
Transform | Description |
---|---|
detachedSQLProtection | A single or array of DetachedCriteriaBuilders which will return the projected value |
Examples
c = newCriteria();
c.withProjections(
detachedSQLProjection=
c.createSubcriteria( "Car", "Car2" )
.withProjections( count="Car2.Year" )
.isLT( "Year", javaCast( "int", 2006 ) )
.isEQ( "CarID", "{alias}.CarID" ),
groupProperty="Make"
).list();
INFO If you need to use a property from the root entity in one of your criterias, simply prepend the property name with {alias}. MORE Notice how a subquery method was not used in this example of the Detached Criteria Builder.