Ответ 1
Проецирование, как сказал Антуан, - это преобразование. В терминах запроса это:
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
.
Существуют и другие проекции: Projection.rowCount()
например (для COUNT(*)
)