【发布时间】:2012-04-05 20:37:45
【问题描述】:
我需要像下面这样转换 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));
但是不知道如何在这里实现投影,也没有别名
【问题讨论】:
标签: hibernate jpa-2.0 projection criteria-api hibernate-criteria