Использование проекций в JPA 2

Мне нужно преобразовать запрос критериев Hibernate, как показано ниже

curList = session.createCriteria(Islem.class)
                    .createAlias("workingDay", "d")
                    .setProjection(Projections.sum("amount"))
                    .add(Restrictions.eq("currency", CURRENCY))
                    .add(Restrictions.eq("product", product))
                    .add(Restrictions.ne("status", INACTIVE))
                    .add(Restrictions.eq("d.status", ACTIVE))
                    .getResultList();

Однако в JPA (2) я понятия не имею, как реализовать проекцию - в данном случае - сумму. Это странно, что Hibernate и JPA (даже Hibernate JPA 2) имеют такие огромные различия, особенно в запросах критериев.

Я начинаю с

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Islem> cq = cb.createQuery(Islem.class);
Root<Islem> isr = cq.from(Islem.class);
cq.select(isr).where(cb.equal(isr.get("currency"), CURRENCY), 
                     cb.notEqual(isr.get("status"), INACTIVE),
                     cb.equal(isr.get("product"), product));

, однако понятия не имею, как реализовать здесь проекцию и псевдоним

18
задан Skyhan 21 March 2012 в 10:29
поделиться