Проекция, как сказал Антуан, - это трансформация. С точки зрения запроса это:
SELECT *PROJECTION* FROM Table
*PROJECTION*
- выражение для преобразования данных.
Пример:
SELECT * FROM ORDER
Критериальный эквивалент будет:
List orders = session.createCriteria(Order.class).list();
Здесь нет проекций, мы берем данные без преобразования. Если мы хотим один:
SELECT NAME FROM PRODUCT
Здесь в игру вступает класс Projection. Приведенный выше запрос можно переписать в запрос Criteria следующим образом:
List products=session.createCriteria(Product.class)
.setProjection(Projection.property(\"name\"))
.list();
Таким образом, мы проецируем все строки в один элемент: name
field.
Существуют и другие прогнозы: Projection.rowCount()
например (для COUNT(*)
)